sp_check_for_sync_trigger (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure
Determina se viene chiamato un trigger o una stored procedure definita dall'utente nel contesto di un trigger di replica, usato per le 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 relative alla sintassi Transact-SQL
Sintassi
sp_check_for_sync_trigger
[ @tabid = ] tabid
[ , [ @trigger_op = ] 'trigger_op' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
[ ; ]
Argomenti
[ @tabid = ] tabid
ID oggetto della tabella da controllare per i trigger di aggiornamento immediato. @tabid è int, senza impostazione predefinita.
[ @trigger_op = ] 'trigger_op' OUTPUT
Specifica se il parametro di output deve restituire il tipo di trigger da cui viene chiamato. @trigger_op è un parametro OUTPUT di tipo char(10) e può essere uno di questi valori.
valore | Descrizione |
---|---|
Ins |
INSERT Grilletto |
Upd |
UPDATE Grilletto |
Del |
DELETE Grilletto |
NULL (predefinito) |
[ @fonpublisher = ] fonpublisher
Specifica la posizione in cui viene eseguita la stored procedure. @fonpublisher è bit, con il valore predefinito 0
.
- Se
0
, l'esecuzione si trova nel Sottoscrittore. - Se
1
, l'esecuzione si trova nel server di pubblicazione.
Valori del codice restituito
0 indica che la stored procedure non viene chiamata nel contesto di un trigger di aggiornamento immediato. 1 indica che viene chiamato nel 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 chiamata 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
Qualsiasi utente con SELECT
autorizzazioni nella vista di sistema sys.objects può eseguire sp_check_for_sync_trigger
.