Określanie pierwszy i ostatni wyzwalaczy

Można określić jeden Wyzwalacze po skojarzone z tabela być pierwszego po wyzwalacza lub po ostatnim wyzwolenia, który jest uruchamiany dla każdego Wstawianie, usuwanie i aktualizacja wywoływanie operacji.Wyzwalacze po, które są opalane między pierwszą i ostatnią wyzwalacze są uruchamiane w niezdefiniowanej kolejności.

To specify the order for an AFTER trigger, use the sp_settriggerorder stored procedure.sp_settriggerorder has the following options.

Opcja

Opis

First

Określa, że wyzwalacz DML jest pierwszym po wyzwalacz jest uruchamiany dla wyzwalającego akcja.

Last

Określa, że wyzwalacz DML jest ostatnią po wyzwalacz jest uruchamiany dla wyzwalającego akcja.

Brak

Określa, że jest bez określonej kolejności, w której wyzwalacz DML powinien być uruchamiany.Używane głównie do wyzwalacza z pierwszego lub ostatniego resetowania.

W poniższym przykładzie za pomocą sp_settriggerorder:

sp_settriggerorder @triggername = 'MyTrigger', @order = 'first', @stmttype = 'UPDATE'
Ważna informacjaWażne:

Pierwszy i ostatni wyzwalaczy musi być dwóch różnych DML wyzwalaczy.

Tabela może mieć Wstawianie, AKTUALIZOWANIE i usuwanie wyzwalaczy zdefiniowany go w tym samym czas.Każdy typ instrukcja może mieć własny wyzwalaczy pierwszy i ostatni, ale nie mogą one być tym samym wyzwalaczy.

Jeśli wyzwalacz pierwszego lub ostatniego zdefiniowanych dla tabela nie obejmuje wyzwalającego akcja, takich jak nie obejmujące dla aktualizacji, usuwanie lub wstawianie dla nie istnieje żaden wyzwalacz pierwszego lub ostatniego brak działań.

INSTEAD OF wyzwalacze nie można określić jako pierwszy lub ostatni wyzwalaczy.INSTEAD OF wyzwalacze są uruchamiany przed zaktualizowane tabel.Jeśli aktualizacje są dokonane przez wyzwalacza INSTEAD OF tabel podstawowych, aktualizacje wystąpić przed opalane są wszelkie Wyzwalacze po zdefiniowane w tabela.Na przykład wyzwalacza INSTEAD OF WSTAWIĆ w widoku wstawia dane do tabela bazowa, sama tabela bazowa zawiera wyzwalacza INSTEAD OF WSTAW i trzy wyzwalacze po Wstawianie wyzwalacza INSTEAD OF Wstawianie tabeli podstawowej jest uruchamiany zamiast Wstawianie akcja, a po Wyzwalacze w tabeli podstawowej jest uruchamiany po żadnej czynności Wstawianie tabela bazowa.Aby uzyskać więcej informacji, zobacz Określanie, kiedy DML pożarów wyzwalacza.

Jeśli Instrukcja ALTER WYZWALACZ zmienia wyzwalacza pierwszego lub ostatniego pierwszego lub ostatniego porzucone atrybut i wartość zamówienia jest zestaw do Brak.Zamówienie musi zresetować za pomocą sp_settriggerorder.

Funkcja OBJECTPROPERTY raporty czy wyzwalacz jest pierwszy lub ostatni wyzwalacz za pomocą właściwości ExecIsFirstTrigger i ExecIsLastTrigger.

Replikacja automatycznie generuje pierwszego wyzwalacza dla dowolnej tabela, która jest wliczana do natychmiastowej aktualizacji lub subskrypcja aktualizacji w kolejce.Replikacja wymaga jego wyzwalacza pierwszego wyzwalacza.Replikacja zgłasza błąd podczas próby dołączyć tabela z pierwszego wyzwalacza do natychmiastowej aktualizacji lub kolejce subskrypcja aktualizacji.Jeśli próby nawiązania pierwszego wyzwalacza wyzwalacza po tabela została zawarta w subskrypcja, sp_settriggerorder zwraca błąd.Jeśli używasz ALTER wyzwalacza replikacja lub użyj sp_settriggerorder zmienić wyzwalacz replikacja do ostatniego lub żaden wyzwalacz, subskrypcja nie będzie funkcja poprawnie.