Understanding DML Triggers

Microsoft SQL Server podano dwa podstawowe mechanizmy do wymuszania integralność reguły i danych biznesowych: ograniczenia i wyzwalaczy. A trigger is a special type of stored procedure that automatically takes effect when a language event executes.SQL Server includes three general types of triggers: Wyzwalacze DML, DDL wyzwalaczy i wyzwalaczy logowania.

DDL wyzwalacze są wywoływane, gdy zdarzenie języka (DDL) definicja typu danych odbywa się na serwerze lub w bazie danych.Te omówiono szczegółowo w Wyzwalacze kod DDL.Wyzwalacze logowania uruchomienie procedur przechowywanych w odpowiedzi na zdarzenie logowanie.To zdarzenie jest wywoływane, gdy sesja użytkownika jest ustanawiana z wystąpienie SQL Server. Aby uzyskać więcej informacji zobaczLogon Triggers.

DML wyzwalacze są wywoływane, gdy zdarzenie typu danych manipulacji języka (DML) odbywa się w bazie danych.Zdarzenia DML zawierają instrukcje INSERT, UPDATE lub DELETE, polegające na zmodyfikowaniu danych w określonej tabela lub widoku.Wyzwalacz DML mogą wysyłać kwerendy do innych tabel i może zawierać złożone Transact-SQL instrukcje. Wyzwalacz i instrukcja, która go uruchomieniu są traktowane jako pojedyncza transakcja, która może zostać przywrócona z wewnątrz wyzwalacza.Po wykryciu poważny błąd (na przykład, za mało miejsca na dysku), cała transakcja automatycznie powoduje powrót.

Wyzwalacze DML są przydatne w następujący sposób:

  • Mogą one kaskadowo zmian za pomocą tabel powiązanych relacjami w bazie danych; jednak zmiany te mogą być wykonywane bardziej wydajne korzystanie z kaskadowych ograniczenia integralność referencyjnej.

  • Mogą zabezpieczyć się przed złośliwe lub nieprawidłowego działania INSERT, UPDATE i DELETE i wymusić inne ograniczenia, które są bardziej złożone niż te zdefiniowane za pomocą ograniczeń CHECK.

    W przeciwieństwie do ograniczeń CHECK wyzwalacze DML mogą odwoływać się do kolumn w innych tabelach.Na przykład wyzwalacz może być SELECT z innej tabela do porównywania danych wstawiony lub zaktualizowany i wykonane dodatkowe akcje, takie jak modyfikowanie danych lub wyświetlany komunikat o błędzie przez użytkownika.

  • Mogą ocenić stan tabela przed i po dokonaniu modyfikacji danych i wykonać operacje oparte na tę różnicę.

  • Wiele wyzwalaczy DML tego samego typu (INSERT, UPDATE lub DELETE) w tabela umożliwiają wielu, różne akcje podejmowane w odpowiedzi na tym samym sprawozdaniu modyfikacji.