Partilhar via


sp_reinitpullsubscription (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Marca uma assinatura pull transacional ou anônima para reinicialização da próxima vez que o Agente de Distribuição for executado. Esse procedimento armazenado é executado no Assinante, no banco de dados de assinatura pull.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_reinitpullsubscription
    [ @publisher = ] N'publisher'
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
[ ; ]

Argumentos

@publisher [ = ] N'editor'

O nome do Editor. @publisher é sysname, sem padrão.

@publisher_db [ = ] N'publisher_db'

O nome do banco de dados Publicador. @publisher_db é sysname, com um padrão de NULL.

@publication [ = ] N'publicação'

O nome da publicação. @publication é sysname, com um padrão de all, que marca todas as assinaturas para reinicialização.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_reinitpullsubscription é usado na replicação transacional.

sp_reinitpullsubscription não há suporte para replicação transacional ponto a ponto.

sp_reinitpullsubscription pode ser chamado do Assinante para reinicializar a assinatura, durante a próxima execução do Distribution Agent.

As assinaturas de publicações criadas com um valor de false for @immediate_sync não podem ser reinicializadas a partir do Assinante.

Você pode reinicializar uma assinatura pull executando sp_reinitpullsubscription no Assinante ou sp_reinitsubscription no Publicador.

Exemplos

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2022Replica]

-- Execute at the Subscriber to reinitialize the pull subscription. 
EXEC sp_reinitpullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @publication = @publication;
GO

-- Start the Distribution Agent.

Permissões

Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_reinitpullsubscriptiono .