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

Updatable Subscriptions for Transactional Replication