sp_check_for_sync_trigger (Transact-SQL)
Gilt für:SQL ServerAzure SQL Managed Instance
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 Veröffentlichungsdatenbank oder auf dem Abonnenten der Abonnementdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
sp_check_for_sync_trigger [ @tabid = ] 'tabid'
[ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
Argumente
[@tabid = ] 'tabid'
Die Objekt-ID der Tabelle, die auf sofort aktualisierbare Trigger überprüft wird. tabid ist int ohne Standardwert.
[@trigger_op = ] ausgabe "trigger_output_parameters"
Gibt an, ob der Ausgabeparameter den Typ von Trigger zurückgeben muss, mit dem er aufgerufen wird. trigger_output_parameters ist char(10) und kann einer dieser Werte sein.
Wert | BESCHREIBUNG |
---|---|
Ins | INSERT-Trigger |
Upd | UPDATE-Trigger |
Del | DELETE-Trigger |
NULL (Standard) |
[ @fonpublisher = ] fonpublisher
Gibt den Speicherort an, an dem die gespeicherte Prozedur ausgeführt wird. fonpublisher ist bit mit dem Standardwert 0. Bei 0 findet die Ausführung auf dem Abonnenten und bei 1 auf dem Verleger statt.
Rückgabecodewerte
0 zeigt an, dass die gespeicherte Prozedur nicht im Kontext eines sofort aktualisierbaren Triggers aufgerufen wird. 1 gibt an, dass es im Kontext eines Triggers mit sofortiger Aktualisierung aufgerufen wird, und ist der Typ des Triggers, der in @trigger_op zurückgegeben wird.
Bemerkungen
sp_check_for_sync_trigger wird in Momentaufnahme Replikation und Transaktionsreplikation verwendet.
sp_check_for_sync_trigger wird verwendet, um zwischen Replikation und benutzerdefinierten Triggern zu koordinieren. Diese gespeicherte Prozedur bestimmt, ob sie im Kontext eines Replikationstriggers aufgerufen wird. Beispielsweise können Sie die Prozedur sp_check_for_sync_trigger im Text eines benutzerdefinierten Triggers aufrufen. Wenn sp_check_for_sync_trigger0 zurückgibt, setzt der benutzerdefinierte Trigger die Verarbeitung fort. Wenn sp_check_for_sync_trigger1 zurückgibt, wird der benutzerdefinierte Trigger beendet. So wird sichergestellt, dass der benutzerdefinierte Trigger nicht ausgelöst wird, wenn der Replikationstrigger die Tabelle aktualisiert.
Beispiele
A. Hinzufügen von Code zu einem Trigger in einer Abonnententabelle
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
B. Hinzufügen von Code zu einem Trigger in einer Verlegertabelle
Der Code kann auch einem Trigger für eine Tabelle auf dem Verleger hinzugefügt werden. Der Code ist ähnlich, aber der Aufruf von sp_check_for_sync_trigger enthält einen zusätzlichen Parameter.
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
Berechtigungen
sp_check_for_sync_trigger gespeicherte Prozedur kann von jedem Benutzer mit SELECT-Berechtigungen in der sys.objects-Systemsicht ausgeführt werden.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für