Abfolge von Triggern ändern

By Frank Kalis

Posted on Sep 28, 2004 von in SQL Server

Die nachfolgenden Informationen gelten nur für AFTER Trigger, nicht für INSTEAD OF Trigger. Grundsätzlich kann man (theoretisch) beliebig viele AFTER Trigger pro Tabelle definieren. Die Anzahl ist hierbei nur durch die maximalen Objekte pro Datenbank von 2.147.483.647 beschränkt. Wenn es nun auf eine gewisse Abfolge ankommt, in welcher die Trigger abgefeuert werden, so kann man auf diese einen gewissen Einfluß ausüben durch die Systemprozedur sp_settriggerorder. Diese hat folgende Syntax:

sp_settriggerorder[@triggername = ] 'triggername' 
    , [@order = ] 'value' 
    , [@stmttype = ] 'statement_type' 

Ein beispielhafter Aufruf sieht dann folgendermaßen aus:

Den Einfluß, den man ausüben kann beschränkt sich aber darauf, festzulegen, welcher Trigger als Erster und welcher Trigger als Letzter abgefeuert wird. Dies erfolgt durch Angabe von

@order='first'

oder

@order='last'

Dazwischen ist die Reihenfolge der Ausführung undefiniert.

@order='none'

Weitere Erklärungen stehen in BOL.

Tags: Tags:
Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: ,

Noch kein Feedback


Formular wird geladen...