Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyzwalacze
kamillo1290
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


W MSQL Server 2008 nie działa mi:

--Napisz wyzwalacz nie pozwalający na obniżanie pensji pracownikom – w przypadku takiej próby ma zwracać odpowiedni komunikat.

CREATE TRIGGER notupdate BEFORE UPDATE OF pensja ON pracownik2
REFERENCING NEW AS after_update OLD AS before_update
FOR EACH ROW
BEGIN
IF after_update.pensja = before_update.pensja THEN
RAISERROR 30002 'You cannot decrease a salary';
END IF;
END

wzorowałem się na skrypcie pokazującym jak napisać podobny wyzwalacz, błędy są takie:

Msg 102, Level 15, State 1, Procedure notupdate, Line 1
Incorrect syntax near 'BEFORE'.
Msg 156, Level 15, State 1, Procedure notupdate, Line 5
Incorrect syntax near the keyword 'THEN'.
Msg 102, Level 15, State 1, Procedure notupdate, Line 7
Incorrect syntax near ';'.


Jeszcze mam, jak dla mnie, trudniejsze zadanie:

--Utwórz wyzwalacz Archiwizuj, który po usunięciu pracownika z tabeli pracownik automatycznie umieszcza jego dane w tabeli pracownik_archiwum, wraz z datą usunięcia i nazwą użytkownika dokonującego operacji usuwania (select user_name() zwraca nazwę aktualnego użytkownika).

CREATE TRIGGER archiwizuj
ON pracownik2
AFTER DELETE
AS

tu zastanawiałem się nad użyciem REFERENCING, nie mam pojęcia jak przekierować dane z tabeli pracownik do pracownik_archiwum
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 03:17