Wytyczne wykonanie wyzwalacza logowania

W tym temacie omówiono wytyczne dla określania kolejności wypalania wyzwalaczy logowania i zarządzanie transakcjami wewnątrz wyzwalaczy logowania.

Określanie pierwszy i ostatni wyzwalacza

Można zdefiniować wiele wyzwalaczy zdarzenie logowania.Any one of these triggers can be designated the first or last trigger to be fired on an event by using the sp_settriggerorder system stored procedure.SQL Server does not guarantee the execution order of the remaining triggers.Aby uzyskać więcej informacji, zobacz Projektowanie i wdrażanie strukturalnego magazynu (aparat bazy danych).

Zarządzanie transakcjami

Przed SQL Server fires wyzwalacz logowania SQL Server tworzy transakcja niejawna zależy od wszelkich transakcji użytkownika.Dlatego przy pierwszym logowaniu wyzwalać uruchamia wyzwalania, liczba transakcji jest 1.Po wszystkich wyzwalaczy logowania zakończenia wykonywania, zatwierdza transakcji.Podobnie jak w przypadku innych typów wyzwalacze, SQL Server zwraca błąd, jeśli wyzwalacz logowania kończy wykonywanie transakcji liczba 0.instrukcja transakcji ROLLBACK zerowana liczba transakcji, nawet jeżeli oświadczenie zostało wydane wewnątrz transakcji zagnieżdżonych.ZATWIERDZENIA transakcji może zmniejszyć liczba transakcji na 0.Dlatego odradzamy wydawania deklaracji ZATWIERDZIĆ transakcji wewnątrz wyzwalaczy logowania.

Podczas korzystania z instrukcja TRANSAKCJĘ ROLLBACK wewnątrz wyzwalaczy logowania, należy rozważyć następujące:

  • Wszelkie modyfikacje danych wprowadzonych do punktu TRANSAKCJĘ ROLLBACK są przywracane.Modyfikacje te obejmują przez wyzwalacz bieżącego i przez poprzednie wyzwalaczy, wykonanych na tym samym zdarzenie.Wszelkie pozostałe wyzwalaczy dla określonego zdarzenie nie są wykonywane.

  • Wyzwalacz bieżącego nadal wykonać pozostałe instrukcje pojawiające się po instrukcja WYCOFYWANIA.Jeśli dowolne z tych oświadczeń modyfikowania danych modyfikacje są nie przywracane.

Nie jest ustanawiana sesja użytkownika, jeśli występuje jeden z następujących warunków podczas wykonywania wyzwalacza zdarzenie logowania:

  • Oryginalna transakcja niejawna przywracana jest lub nie powiedzie się.

  • Błąd, który ma wskaźnik ważności jest większa niż 20 jest wywoływane wewnątrz ciała wyzwalacza.