![]() |
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 03:17 |