sp_check_for_sync_trigger (Transact-SQL)
Si applica a:Istanza gestita di SQL Di Azure di SQL Server
Determina se una stored procedure definita dall'utente o un trigger definito dall'utente viene chiamato nel contesto di un trigger di replica utilizzato per sottoscrizioni ad aggiornamento immediato. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione o nel database di sottoscrizione del Sottoscrittore.
Convenzioni di sintassi Transact-SQL
Sintassi
sp_check_for_sync_trigger [ @tabid = ] 'tabid'
[ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
Argomenti
[@tabid = ] 'tabid'
ID di oggetto della tabella in cui vengono controllati i trigger per l'aggiornamento immediato. tabid è int senza impostazione predefinita.
[@trigger_op = ] OUTPUT 'trigger_output_parameters'
Specifica se il parametro di output restituisce il tipo di trigger da cui viene richiamato. trigger_output_parameters è char(10) e può essere uno di questi valori.
Valore | Descrizione |
---|---|
Ins | Trigger INSERT |
Upd | Trigger UPDATE |
CANC | Trigger DELETE |
NULL (predefinito) |
[ @fonpublisher = ] fonpublisher
Specifica il percorso in cui viene eseguita la stored procedure. fonpublisher è bit, con un valore predefinito pari a 0. 0 indica che l'esecuzione avviene nel Sottoscrittore, mentre 1 indica che avviene nel server di pubblicazione.
Valori del codice restituito
0 indica che la stored procedure non viene richiamata nel contesto di un trigger per l'aggiornamento immediato. 1 indica che viene chiamato all'interno del contesto di un trigger ad aggiornamento immediato ed è il tipo di trigger restituito in @trigger_op.
Osservazioni:
sp_check_for_sync_trigger viene usato nella replica snapshot e nella replica transazionale.
sp_check_for_sync_trigger viene usato per coordinare la replica e i trigger definiti dall'utente. Questa stored procedure determina se viene richiamata nel contesto di un trigger di replica. Ad esempio, è possibile chiamare la routine sp_check_for_sync_trigger nel corpo di un trigger definito dall'utente. Se sp_check_for_sync_trigger restituisce 0, il trigger definito dall'utente continua l'elaborazione. Se sp_check_for_sync_trigger restituisce 1, il trigger definito dall'utente viene chiuso. Ciò garantisce che il trigger definito dall'utente non venga attivato quando il trigger di replica aggiorna la tabella.
Esempi
R. Aggiungere codice a un trigger in una tabella del Sottoscrittore
Nell'esempio seguente viene illustrato il codice che può essere utilizzato in un trigger in una tabella del Sottoscrittore.
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. Aggiungere codice a un trigger in una tabella del server di pubblicazione
Il codice può anche essere aggiunto a un trigger in una tabella nel server di pubblicazione; il codice è simile, ma la chiamata a sp_check_for_sync_trigger include un parametro aggiuntivo.
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
Autorizzazioni
sp_check_for_sync_trigger stored procedure può essere eseguita da qualsiasi utente con autorizzazioni SELECT nella vista di sistema sys.objects.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per