sp_addpullsubscription (Transact-SQL)

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

Adiciona uma assinatura pull a um instantâneo ou publicação transacional. Esse procedimento armazenado é executado no Assinante, no banco de dados onde a assinatura pull será criada.

Ícone de link do tópico Convenções da sintaxe Transact-SQL

Sintaxe

  
sp_addpullsubscription [ @publisher= ] 'publisher'  
    [ , [ @publisher_db= ] 'publisher_db' ]  
        , [ @publication= ] 'publication'  
    [ , [ @independent_agent= ] 'independent_agent' ]  
    [ , [ @subscription_type= ] 'subscription_type' ]  
    [ , [ @description= ] 'description' ]  
    [ , [ @update_mode= ] 'update_mode' ]  
    [ , [ @immediate_sync = ] immediate_sync ]  

Argumentos

[ @publisher = ] 'publisher'É o nome do Publisher. o Publicador é sysname, sem padrão.

Observação

O nome do servidor pode ser especificado como <Hostname>,<PortNumber> . talvez seja necessário especificar o número da porta para a conexão quando SQL Server for implantada no Linux ou Windows com uma porta personalizada, e o serviço de navegador estiver desabilitado. o uso de números de porta personalizados para o distribuidor remoto aplica-se somente ao SQL Server 2019.

[ @publisher_db = ] 'publisher_db'é o nome do banco de dados de Publisher. publisher_db é sysname, com um padrão de NULL. publisher_db é ignorado pelos Publicadores Oracle.

[ @publication = ] 'publication' É o nome da publicação. a publicação é sysname, sem padrão.

[ @independent_agent = ] 'independent_agent' Especifica se há um Agente de Distribuição autônomo para esta publicação. independent_agent é nvarchar (5), com um padrão de true. Se for true, haverá um agente de distribuição autônomo para essa publicação. se for false, há um Agente de Distribuição para cada par de banco de dados de banco de dados/assinante Publisher. independent_agent é uma propriedade da publicação e deve ter o mesmo valor aqui, como no Publisher.

[ @subscription_type = ] 'subscription_type' É o tipo de assinatura. subscription_type é nvarchar (9), com um padrão de anônimo. Você deve especificar um valor de pull para subscription_type, a menos que queira criar uma assinatura sem registrar a assinatura no Publisher. Nesse caso, você deve especificar um valor de Anonymous. Isso é necessário em casos nos quais você não pode estabelecer uma conexão SQL Server com o Publicador durante configuração da assinatura.

[ @description = ] 'description' É a descrição da publicação. a Descrição é nvarchar (100), com um padrão de NULL.

[ @update_mode = ] 'update_mode' É o tipo de atualização. update_mode é nvarchar (30) e pode ser um dos valores a seguir.

Valor Descrição
somente leitura (padrão) A assinatura é somente leitura. Qualquer alteração no Assinante não será mandada de volta ao Publicador. Deve ser usado quando não são feitas atualizações no Assinante.
synctran Habilita suporte para assinaturas de atualização imediata.
queued tran Habilita a assinatura de atualização enfileirada. As modificações de dados podem ser feitas no Assinante, armazenadas em uma fila e, depois, propagadas ao Publicador.
pós-falha Habilita a assinatura para atualização imediata com atualização enfileirada como um failover. Modificações de dados podem ser feitas no Assinante e propagadas ao Publicador imediatamente. Se o Publicador e o Assinante não estiverem conectados, as modificações de dados feitas no Assinante poderão ser armazenadas em uma fila até que o Assinante e o Publicador sejam reconectados.
queued failover Habilita a assinatura como uma assinatura de atualização enfileirada com a capacidade de alterar para o modo de atualização imediata. Modificações de dados podem ser feitas no Assinante e armazenadas em uma fila até que a conexão seja estabelecida entre o Assinante e o Publicador. Quando uma conexão contínua é estabelecida, o modo de atualização pode ser alterado para atualização imediata. Não há suporte para Publicadores Oracle.

[ @immediate_sync = ] immediate_sync É se os arquivos de sincronização são criados ou recriados sempre que o Agente de Instantâneo é executado. immediate_sync é bit com um padrão de 1 e deve ser definido com o mesmo valor que immediate_sync em sp_addpublication. immediate_sync é uma propriedade da publicação e deve ter o mesmo valor aqui, como no Publisher.

Valores do código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addpullsubscription é usado na replicação de instantâneo e na replicação transacional.

Importante

Para assinaturas de atualização enfileiradas, use Autenticação do SQL Server para conexões com Assinantes, e especifique uma conta diferente para conexão com cada assinante. Ao criar uma assinatura pull que oferece suporte a atualização em fila, a replicação sempre define a conexão para usar a Autenticação do Windows (em assinaturas pull, a replicação não pode acessar metadados em Assinante com Autenticação do SQL Server). Nesse caso, você deve executar sp_changesubscription para alterar a conexão para usar a SQL Server autenticação depois que a assinatura for configurada.

se o MSreplication_subscriptions (tabela de)Transact-SQL não existir no assinante, o sp_addpullsubscription o criará. ele também adiciona uma linha à MSreplication_subscriptions (tabela de)Transact-SQL . para assinaturas pull, sp_addsubscription (Transact-SQL) deve ser chamado primeiro no Publisher.

Exemplo

-- 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".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorks2012Replica]
EXEC sp_addpullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Permissões

Somente os membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem ser executados sp_addpullsubscription.

Consulte Também

Create a Pull Subscription
Criar uma assinatura atualizável para uma publicação transacional assinar publicações
sp_addpullsubscription_agent (Transact-SQL)
sp_change_subscription_properties (Transact-SQL)
sp_droppullsubscription (Transact-SQL)
sp_helppullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)