Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

sp_check_for_sync_trigger (Transact-SQL)

Bestimmt, ob ein benutzerdefinierter Trigger oder eine benutzerdefinierte gespeicherte Prozedur im Kontext eines Replikationstriggers aufgerufen wird, der für sofort aktualisierbare Abonnements verwendet wird. Diese gespeicherte Prozedur wird auf dem Verleger für die Publikationsdatenbank oder auf dem Abonnenten für die Abonnementdatenbank ausgeführt.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen


sp_check_for_sync_trigger [ @tabid = ] 'tabid' 
    [ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]
    [ , [ @fonpublisher = ] fonpublisher ]

[@tabid = ] 'tabid'

Die Objekt-ID der Tabelle, die auf sofort aktualisierbare Trigger überprüft wird. tabid ist vom Datentyp int und hat keinen Standardwert.

[@trigger_op = ] 'trigger_output_parameters' OUTPUT

Gibt an, ob der Ausgabeparameter den Typ des Triggers zurückgeben soll, von dem aus der Aufruf erfolgt. trigger_output_parameters ist vom Datentyp char(10). Die folgenden Werte sind möglich:

Wert Beschreibung

Ins

INSERT-Trigger

Upd

UPDATE-Trigger

Del

DELETE-Trigger

NULL (Standard)

[ @fonpublisher = ] fonpublisher

Gibt an, wo die gespeicherte Prozedur ausgeführt wird. fonpublisher ist vom Datentyp bit und hat den Standardwert 0. Bei 0 findet die Ausführung auf dem Abonnenten und bei 1 auf dem Verleger statt.

0 zeigt an, dass die gespeicherte Prozedur nicht im Kontext eines sofort aktualisierbaren Triggers aufgerufen wird. 1 zeigt an, dass sie im Kontext eines sofort aktualisierbaren Triggers aufgerufen wird, dessen Typ in @trigger_op zurückgegeben wird.

sp_check_for_sync_trigger wird bei der Snapshot- und Transaktionsreplikation verwendet.

sp_check_for_sync_trigger wird für die Koordination zwischen Replikationstriggern und benutzerdefinierten Triggern verwendet. Diese gespeicherte Prozedur bestimmt, ob sie im Kontext eines Replikationstriggers aufgerufen wird. So können Sie beispielsweise die Prozedur sp_check_for_sync_trigger im Text eines benutzerdefinierten Triggers aufrufen. Wenn sp_check_for_sync_trigger 0 zurückgibt, setzt der benutzerdefinierte Trigger die Verarbeitung fort. Wenn sp_check_for_sync_trigger 1 zurückgibt, wird der benutzerdefinierte Trigger beendet. So wird sichergestellt, dass der benutzerdefinierte Trigger nicht ausgelöst wird, wenn der Replikationstrigger die Tabelle aktualisiert.

Die gespeicherte Prozedur sp_check_for_sync_trigger kann von jedem Benutzer mit SELECT-Berechtigungen in der sys.objects-Systemsicht ausgeführt werden.

Im folgenden Beispiel wird Code dargestellt, der in einem Trigger in der Abonnententabelle verwendet werden kann.

DECLARE @retcode int, @trigger_op char(10), @table_id int
SELECT @table_id = object_id('tablename')
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT
IF @retcode = 1
RETURN

Der Code kann auch einem Trigger in einer Tabelle auf dem Verleger hinzugefügt werden. Der Code ist ähnlich, jedoch ist im Aufruf von sp_check_for_sync_trigger ein zusätzlicher Parameter enthalten.

DECLARE @retcode int, @trigger_op char(10), @table_id int, @fonpublisher int
SELECT @table_id = object_id('tablename')
SELECT @fonpublisher = 1
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT, @fonpublisher
IF @retcode = 1
RETURN
Anzeigen: