Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Determina se um gatilho definido pelo utilizador ou procedimento armazenado está a ser chamado no contexto de um disparador de replicação, que é usado para atualizações imediatas de subscrições. Este procedimento armazenado é executado no Publisher na base de dados de publicações ou no Assinante na base de dados de subscrição.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_check_for_sync_trigger
[ @tabid = ] tabid
[ , [ @trigger_op = ] 'trigger_op' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
[ ; ]
Arguments
[ @tabid = ] tabid
O ID do objeto da tabela está a ser verificado para gatilhos de atualização imediata. @tabid é int, sem padrão.
[ @trigger_op = ] 'trigger_op' SAÍDA
Especifica se o parâmetro de saída deve devolver o tipo de trigger de onde está a ser chamado.
@trigger_op é um OUTPUT parâmetro do tipo char(10), e pode ser um desses valores.
| Value | Description |
|---|---|
Ins |
INSERT disparador |
Upd |
UPDATE disparador |
Del |
DELETE disparador |
NULL (padrão) |
[ @fonpublisher = ] fonpublisher
Especifica o local onde o procedimento armazenado é executado.
@fonpublisher é bit, com um padrão de 0.
- Se
0, a execução é no Assinante. - Se
1, a execução é realizada no Publisher.
Valores de código de retorno
0 indica que o procedimento armazenado não está a ser chamado no contexto de um gatilho de atualização imediata. 1 indica que está a ser chamado no contexto de um gatilho de atualização imediata e é o tipo de gatilho que está a ser devolvido em @trigger_op.
Remarks
sp_check_for_sync_trigger é usado na replicação instantânea e na replicação transacional.
sp_check_for_sync_trigger é usado para coordenar entre a replicação e os gatilhos definidos pelo utilizador. Este procedimento armazenado determina se está a ser chamado no contexto de um gatilho de replicação. Por exemplo, pode chamar o procedimento sp_check_for_sync_trigger no corpo de um gatilho definido pelo utilizador. Se sp_check_for_sync_trigger devolver 0, o gatilho definido pelo utilizador continua a processar. Se sp_check_for_sync_trigger devolver 1, o gatilho definido pelo utilizador encerra. Isto garante que o gatilho definido pelo utilizador não dispare quando o gatilho de replicação atualiza a tabela.
Examples
A. Adicionar código a um gatilho numa tabela de subscritores
O exemplo seguinte mostra código que poderia ser usado num gatilho numa tabela de assinantes.
DECLARE @retcode INT,
@trigger_op CHAR(10),
@table_id INT;
SELECT @table_id = object_id('tablename');
EXECUTE
@retcode = sp_check_for_sync_trigger
@table_id,
@trigger_op OUTPUT;
IF @retcode = 1
RETURN;
B. Adicionar código a um gatilho numa tabela Publisher
O código também pode ser adicionado a um gatilho numa tabela no Publisher; o código é semelhante, mas a chamada inclui sp_check_for_sync_trigger um parâmetro extra.
DECLARE @retcode INT,
@trigger_op CHAR(10),
@table_id INT,
@fonpublisher INT;
SELECT @table_id = object_id('tablename');
SELECT @fonpublisher = 1;
EXECUTE
@retcode = sp_check_for_sync_trigger
@table_id,
@trigger_op OUTPUT,
@fonpublisher;
IF @retcode = 1
RETURN;
Permissions
Qualquer utilizador com SELECT permissões na vista de sistema sys.objects pode executar sp_check_for_sync_trigger.