sp_check_for_sync_trigger (Transact-SQL)

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.

Icona di collegamento a un argomentoConvenzioni della 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 è di tipo int e non prevede alcun valore predefinito.
  • [@trigger_op = ] 'trigger_output_parameters' OUTPUT
    Specifica se il parametro di output restituisce il tipo di trigger da cui viene richiamato. trigger_output_parameters è di tipo char(10). I possibili valori sono i seguenti.

    Valore Descrizione

    Ins

    Trigger INSERT

    Upd

    Trigger UPDATE

    Del

    Trigger DELETE

    NULL (predefinito)

  • [ @fonpublisher = ] fonpublisher
    Specifica la posizione in cui viene eseguita la stored procedure. fonpublisher è di tipo bit e il valore predefinito è 0. Se è 0, la posizione di esecuzione corrisponde al Sottoscrittore, mentre se è 1 la posizione di esecuzione corrisponde al server di pubblicazione.

Osservazioni

La stored procedure sp_check_for_sync_trigger viene utilizzata per la replica snapshot e transazionale.

La stored procedure sp_check_for_sync_trigger viene utilizzata per coordinare le replica e i trigger definiti dall'utente. Questa stored procedure determina se viene richiamata nel contesto di un trigger di replica. Ad esempio, è possibile richiamare la procedura sp_check_for_sync_trigger nel corpo di un trigger definito dall'utente. Se sp_check_for_sync_trigger restituisce 0, l'elaborazione del trigger definito dall'utente prosegue. Se sp_check_for_sync_trigger restituisce 1, l'elaborazione del trigger definito dall'utente viene interrotta. Ciò garantisce che il trigger definito dall'utente non venga attivato quando il trigger di replica aggiorna la tabella.

Autorizzazioni

La stored procedure sp_check_for_sync_trigger può essere eseguita da qualsiasi utente che disponga di autorizzazioni SELECT per la vista di sistema sys.objects.

Valori restituiti

0 indica che la stored procedure non viene richiamata nel contesto di un trigger per l'aggiornamento immediato. 1 indica che la stored procedure viene richiamata nel contesto di un trigger per l'aggiornamento immediato e corrisponde al tipo di trigger restituito in @trigger_op.

Esempio

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

È inoltre possibile aggiungere tale codice 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

Vedere anche

Altre risorse

Sottoscrizioni aggiornabili per la replica transazionale

Guida in linea e informazioni

Assistenza su SQL Server 2005