Jaka jest różnica między wyzwalaczami FOR
i AFTER
?
sql
sql-server-2005
triggers
sqlchild
źródło
źródło
Odpowiedzi:
Nie ma różnicy, robią to samo.
Jest taki sam jak
INSTEAD OF
Wyzwalacz jest inny, a pożary przed i zamiast wkładki i mogą być wykorzystane w widokach, w celu wprowadzenia odpowiednich wartości w tabelach bazowych.źródło
@Ben ma całkowitą rację.
Oto artykuł MSDN Exploring SQL Server Triggers
Akapit z artykułu:
źródło
AFTER określa, że wyzwalacz DML jest uruchamiany tylko wtedy, gdy wszystkie operacje określone w wyzwalającej instrukcji SQL zostały pomyślnie wykonane. Wszystkie referencyjne akcje kaskadowe i sprawdzenia ograniczeń również muszą się powieść, zanim ten wyzwalacz zostanie uruchomiony. AFTER jest ustawieniem domyślnym, gdy FOR jest jedynym określonym słowem kluczowym.
Wyzwalaczy AFTER nie można definiować w widokach.
INSTEAD OF Określa, że wyzwalacz DML jest wykonywany zamiast wyzwalającej instrukcji SQL, w związku z czym przesłania akcje instrukcji wyzwalających. Nie można określić INSTEAD OF dla wyzwalaczy DDL lub logowania.
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql
źródło