sp_check_for_sync_trigger (Transact-SQL)
Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure
Determina se um gatilho definido pelo usuário ou procedimento armazenado está sendo chamado no contexto de um gatilho de replicação usado para assinaturas de atualização imediata. Esse procedimento armazenado é executado no Publicador no banco de dados de publicação ou no Assinante no banco de dados de assinatura.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_check_for_sync_trigger [ @tabid = ] 'tabid'
[ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
Argumentos
[@tabid = ] 'tabid'
É a ID de objeto da tabela onde gatilhos de atualização imediata estão sendo verificados. tabid é int sem padrão.
[@trigger_op = ] SAÍDA 'trigger_output_parameters'
Especifica se o parâmetro de saída deve retornar o tipo de gatilho de onde ele está sendo chamado. trigger_output_parameters é char(10) e pode ser um desses valores.
Valor | Descrição |
---|---|
Ins | Gatilho INSERT |
Upd | Gatilho UPDATE |
Del | Gatilho DELETE |
NULL (padrão) |
[ @fonpublisher = ] fonpublisher
Especifica o local em que o procedimento armazenado é executado. fonpublisher é bit, com um valor padrão de 0. Se for 0 a execução será no Assinante e se for 1 a execução será no Editor.
Valores do código de retorno
0 indica que o procedimento armazenado não está sendo chamado dentro do contexto de um gatilho da atualização imediata. 1 indica que ele está sendo chamado dentro do contexto de um gatilho de atualização imediata e é o tipo de gatilho que está sendo retornado em @trigger_op.
Comentários
sp_check_for_sync_trigger é usado em replicação instantâneo e replicação transacional.
sp_check_for_sync_trigger é usado para coordenar entre a replicação e os gatilhos definidos pelo usuário. Esse procedimento armazenado determina se ele está sendo chamado dentro do contexto de um gatilho de replicação. Por exemplo, você pode chamar o procedimento sp_check_for_sync_trigger no corpo de um gatilho definido pelo usuário. Se sp_check_for_sync_trigger retornar 0, o gatilho definido pelo usuário continuará sendo processado. Se sp_check_for_sync_trigger retornar 1, o gatilho definido pelo usuário será encerrado. Isso assegura que o gatilho definido pelo usuário não seja disparado quando o gatilho de replicação atualizar a tabela.
Exemplos
a. Adicionar código a um gatilho em uma tabela do Assinante
O exemplo a seguir mostra código que pode ser usado em um gatilho, em uma tabela de Assinante.
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. Adicionar código a um gatilho em uma tabela do Publisher
O código também pode ser adicionado a um gatilho em uma tabela no Publicador; o código é semelhante, mas a chamada para sp_check_for_sync_trigger inclui um parâmetro adicional.
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
Permissões
sp_check_for_sync_trigger procedimento armazenado pode ser executado por qualquer usuário com permissões SELECT na exibição do sistema sys.objects .
Consulte Também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: ao longo de 2024, vamos eliminar problemas do GitHub como o mecanismo de comentários para conteúdo e substituí-lo por um novo sistema de comentários. Para obter mais informações, consulte:Enviar e exibir comentários de