Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 da sintaxe 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 = ] 'trigger_output_parameters' OUTPUT
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 ter um destes valores.Value
Descrição
Ins
Gatilho INSERT
Upd
Gatilho UPDATE
Del
Gatilho DELETE
NULL (padrão)
[ @fonpublisher = ] fonpublisher
Especifica o local onde o procedimento armazenado é executado. fonpublisher é bit, com um padrão de 0. Se for 0 a execução será no Assinante e se for 1 a execução será no Editor.
Valores de 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 da 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 de 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á o processamento. Se sp_check_for_sync_trigger retornar 1, o gatilho definido pelo usuário será fechado. Isso assegura que o gatilho definido pelo usuário não seja disparado quando o gatilho de replicação atualizar a tabela.
Exemplo
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
O código também pode ser adicionado a um gatilho em uma tabela no Editor; 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
O procedimento armazenadosp_check_for_sync_trigger pode ser executado por qualquer usuário com permissões SELECT na exibição de sistema sys.objects.