sp_check_for_sync_trigger (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimInstância Gerenciada do Azure SQL

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 Publisher no banco de dados de publicação ou no assinante no banco de dados de assinatura.

Ícone de link do tópico 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' saída
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
Los Gatilho INSERT
Upd Gatilho UPDATE
Confirmar 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 na replicação de instantâneo e na replicação transacional.

sp_check_for_sync_trigger é usado para coordenar entre os gatilhos de replicação e 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á processando. 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 de 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 de Publisher

O código também pode ser adicionado a um gatilho em uma tabela no Publisher; 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

Updatable Subscriptions for Transactional Replication