Transakcja:
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO dbo.Wypozyczenie (idWypozyczenia , idEgzemplarza , idCzytelnika , idPracownika , dataWyp )
VALUES (17, '02110007', '00032007',1, '2009-10-07')
UPDATE dbo.Egzemplarz
SET znDostMag = 'false', znWypozyczenia ='true'
WHERE idEgzemplarza = '02110007'
COMMIT TRANSACTION
END TRY
BEGIN CATCH
RAISERROR ('BLAD! Rejestracja nie moze byc przeprowadzona',0,0)
ROLLBACK
END CATCH
Procedura składowana:
CREATE PROCEDURE Zwrot_Ksiazki
@Podaj_idEgzemplarza varchar(25)
AS
BEGIN
UPDATE dbo.Egzemplarz
SET znDostMag = 'True', znWypozyczenia ='False'
WHERE idEgzemplarza = @Podaj_idEgzemplarza
SELECT znWypozyczenia, COUNT(idEgzemplarza)as liczbaKsiazek
FROM dbo.Egzemplarz
GROUP BY znWypozyczenia
END
Funkcja bazodanowa:
ALTER FUNCTION Format_Daty (@Data datetime, @Separator varchar(1))
RETURNS TABLE
AS
RETURN
(
SELECT Convert (nvarchar(32), Datepart (dd, @Data))
+ @Separator
+ Convert (nvarchar(32), Datepart (mm, @Data))
+ @Separator
+ Convert (nvarchar(32), Datepart (yy, @Data)) as DataForm
)
GO
SELECT idWypozyczenia , idEgzemplarza, idCzytelnika, idPracownika, DataForm as dataWypozyczenia
FROM dbo.Wypozyczenie
CROSS APPLY Format_Daty(dataWyp , '-')
GO
Format wielkie litery:
UPDATE Ksiazka
SET wydawnictwo = UPPER(wydawnictwo)
Format wielkie i małe litery:
UPDATE Autor
SET
nazwiskoA = UPPER(nazwiskoA),
imieA=UPPER(Left(imieA,1))+ LOWER(right(imieA,LEN(imieA)-1))
Wprowadzanie danych do tabeli:
INSERT INTO AutorKsiazki(idAutora, idKsiazki)
VALUES (1,1)
INSERT INTO AutorKsiazki(idAutora, idKsiazki)
VALUES (2,2)
INSERT INTO AutorKsiazki(idAutora, idKsiazki)
VALUES (2,3)
INSERT INTO AutorKsiazki(idAutora, idKsiazki)
VALUES (3,4)
INSERT INTO AutorKsiazki(idAutora, idKsiazki)
VALUES (4,5)