sp_addmergesubscription (Transact-SQL)
Cria uma assinatura push ou pull. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_addmergesubscription [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db= ] 'subscriber_db' ]
[ , [ @subscription_type= ] 'subscription_type' ]
[ , [ @subscriber_type= ] 'subscriber_type' ]
[ , [ @subscription_priority= ] subscription_priority ]
[ , [ @sync_type= ] 'sync_type' ]
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @optional_command_line= ] 'optional_command_line' ]
[ , [ @description= ] 'description' ]
[ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
[ , [ @offloadagent= ] remote_agent_activation]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
[ , [ @merge_job_name= ] 'merge_job_name' ]
[ , [ @hostname = ] 'hostname'
Argumentos
[ @publication=] 'publication'
É o nome da publicação. publication é sysname, sem padrão. A publicação já deve existir.[ @subscriber =] 'subscriber'
É o nome do Assinante. subscriber é sysname, com um padrão de NULL.[ @subscriber_db=] 'subscriber_db'
É o nome do banco de dados de assinatura. subscriber_db é sysname, com um padrão de NULL.[ @subscription_type=] 'subscription_type'
É o tipo de assinatura. subscription_type é nvarchar(15), com um padrão PUSH. Se for push, uma assinatura push será adicionada e o Agente de Mesclagem será adicionado ao Distribuidor. Se for pull, uma assinatura pull será adicionada sem adicionar um Agente de Mesclagem ao Distribuidor.Observação Assinaturas anônimas não precisam usar esse procedimento armazenado.
[ @subscriber_type=] 'subscriber_type'
É o tipo de Assinante. subscriber_typeis nvarchar(15), e pode ter um dos valores a seguir.Valor
Descrição
local (padrão)
Assinante conhecido somente pelo Publicador.
global
Assinante conhecido por todos os servidores.
No SQL Server 2005 e versões posteriores, assinaturas locais são referidas como assinaturas de cliente e assinaturas globais são referidas como assinaturas de servidor.
[ @ subscription_priority =] subscription_priority
É um número que indica a prioridade da assinatura. subscription_priority é real, com um padrão de NULL. Para assinaturas locais e anônimas, a prioridade é 0.0. Para assinaturas globais, a prioridade deve ser menos que 100.0.[ @sync_type=] 'sync_type'
É o tipo de sincronização da assinatura. sync_typeis nvarchar(15), com um padrão de automatic. Pode ser automatic ou none. Se for automatic, o esquema e os dados iniciais das tabelas publicadas serão transferidos para o Assinante primeiro. Se for none, é assumido que o Assinante tem já o esquema e os dados iniciais para tabelas publicadas. Tabelas de sistema e dados sempre são transferidos.Observação Recomendamos a não especificar um valor de none.
[ @frequency_type=] frequency_type
É um valor que indica quando o Agente de Mesclagem será executado. frequency_type é int e pode ser um dos valores a seguir.Valor
Descrição
1
Uma vez
4
Diariamente
8
Semanalmente
10
Mensalmente
20
Mensalmente, relativo ao intervalo de frequência
40
Quando o SQL Server Agent inicia
NULL (padrão)
[ @frequency_interval = ] frequency_interval
O dia ou dias em que o Agente de Mesclagem é executado. frequency_interval é int e pode ser um dos valores a seguir.Valor
Descrição
1
Domingo
2
Segunda-feira
3
Terça-feira
4
Quarta-feira
5
Quinta-feira
6
Sexta-feira
7
Sábado
8
Dia
9
Dias da semana
10
Dias de fim de semana
NULL (padrão)
[ @frequency_relative_interval = ] frequency_relative_interval
É a ocorrência da mesclagem agendada do intervalo de frequência em cada mês. frequency_relative_interval é int, e pode ter um destes valores.Valor
Descrição
1
Primeiro
2
Segundo
4
Terceiro
8
Quarto
16
Último
NULL (padrão)
[ @frequency_recurrence_factor=] frequency_recurrence_factor
É o fator de recorrência usado por frequency_type. frequency_recurrence_factor é int, com um padrão de NULL.[ @frequency_subday = ] frequency_subday
É a unidade de frequency_subday_interval. frequency_subday é int e pode ser um dos valores a seguir.Valor
Descrição
1
Uma vez
2
Segundo
4
Minuto
8
Hora
NULL (padrão)
[ @frequency_subday_interval = ] frequency_subday_interval
É a frequência da ocorrência de frequency_subday entre cada mesclagem. frequency_subday_interval é int, com um padrão de NULL.[ @active_start_time_of_day = ] active_start_time_of_day
É a hora do dia do primeiro agendamento do Agente de Mesclagem, formatada como HHMMSS. active_start_time_of_day é int, com um padrão de NULL.[ @active_end_time_of_day = ] active_end_time_of_day
É a hora do dia do último agendamento do Agente de Mesclagem, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de NULL.[ @active_start_date = ] active_start_date
É a data do primeiro agendamento do Agente de Mesclagem, formatada como YYYYMMDD. active_start_date é int, com um padrão de NULL.[ @active_end_date = ] active_end_date
É a data do último agendamento do Agente de Mesclagem, formatada como YYYYMMDD. active_end_date é int, com um padrão de NULL.[ @optional_command_line=] 'optional_command_line'
É o prompt de comando opcional a ser executado. optional_command_line é nvarchar(4000), com um padrão de NULL. Esse parâmetro é usado para adicionar um comando que captura a saída e a salva em um arquivo ou para especificar um arquivo de configuração ou atributo.[ @description=] 'description'
É uma descrição breve dessa assinatura de mesclagem. description é nvarchar(255), com um padrão de NULL. Esse valor é exibido pelo Replication Monitor na coluna Nome Amigável, que pode ser usada para classificar as assinaturas de uma publicação monitorada.[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Especifica se a assinatura pode ser sincronizada pelo Gerenciador de Sincronização do Microsoft Windows. enabled_for_syncmgr é nvarchar(5), com um padrão de FALSE. Se for false, a assinatura não será registrada com o Gerenciador de Sincronização. Se for true, a assinatura será registrada com o Gerenciador de Sincronização e será sincronizada sem iniciar o Microsoft SQL Server Management Studio.[ @offloadagent= ] remote_agent_activation
Especifica que o agente pode ser ativado remotamente. remote_agent_activation é bit com um padrão de 0.Observação Esse parâmetro foi preterido e só é mantido para compatibilidade com versões anteriores.
[ @offloadserver= ] 'remote_agent_server_name'
Especifica o nome da rede de servidor a ser usado para ativação de agente remota. remote_agent_server_name é sysname, com um padrão de NULL.[ @use_interactive_resolver= ] 'use_interactive_resolver'
Permite resolver conflitos interativamente para todos os artigos que permitem resolução interativa. use_interactive_resolver é nvarchar(5), com um padrão de FALSE.[ @merge_job_name= ] 'merge_job_name'
O parâmetro @merge\_job\_name foi preterido e não pode ser definido. merge_job_name é sysname, com um padrão de NULL.[ @hostname= ] 'hostname'
Substitui o valor retornado por HOST_NAME quando essa função é usada na cláusula WHERE de um filtro com parâmetros. Hostname é sysname, com um padrão de NULL.Importante Por motivos de desempenho, recomendamos que não sejam aplicadas funções a nomes de colunas em cláusulas de filtro de linha com parâmetros, como LEFT([MyColumn]) = SUSER_SNAME(). Se você usar HOST_NAME em uma cláusula de filtro e substituir o valor HOST_NAME, será necessário converter tipos de dados usando CONVERT. Para obter mais informações sobre práticas recomendadas para esse caso, consulte a seção "Substituindo o valor de HOST_NAME()" no tópico Filtros de linha com parâmetros.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Comentários
sp_addmergesubscription é usado em replicação de mesclagem.
Quando sp_addmergesubscription é executado por um membro da função de servidor fixa sysadmin para criar uma assinatura push, o trabalho do Agente de Mesclagem é implicitamente criado e executado na conta de serviço do SQL Server Agent. Recomendamos que você execute sp_addmergepushsubscription_agent e especifique as credenciais de uma conta do Windows diferente, específica de agente para @job_login e @job_password. Para obter mais informações, consulte Modelo de segurança do agente de replicação.
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".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Permissões
Somente membros da função de servidor fixa sysadmin ou db_owner podem executar sp_addmergesubscription.
Consulte também
Referência
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)