Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Cria uma nova publicação de fusão. Este procedimento armazenado é executado no Publisher na base de dados que está a ser publicada.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_addmergepublication
[ @publication = ] N'publication'
[ , [ @description = ] N'description' ]
[ , [ @retention = ] retention ]
[ , [ @sync_mode = ] N'sync_mode' ]
[ , [ @allow_push = ] N'allow_push' ]
[ , [ @allow_pull = ] N'allow_pull' ]
[ , [ @allow_anonymous = ] N'allow_anonymous' ]
[ , [ @enabled_for_internet = ] N'enabled_for_internet' ]
[ , [ @centralized_conflicts = ] N'centralized_conflicts' ]
[ , [ @dynamic_filters = ] N'dynamic_filters' ]
[ , [ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder' ]
[ , [ @alt_snapshot_folder = ] N'alt_snapshot_folder' ]
[ , [ @pre_snapshot_script = ] N'pre_snapshot_script' ]
[ , [ @post_snapshot_script = ] N'post_snapshot_script' ]
[ , [ @compress_snapshot = ] N'compress_snapshot' ]
[ , [ @ftp_address = ] N'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_subdirectory = ] N'ftp_subdirectory' ]
[ , [ @ftp_login = ] N'ftp_login' ]
[ , [ @ftp_password = ] N'ftp_password' ]
[ , [ @conflict_retention = ] conflict_retention ]
[ , [ @keep_partition_changes = ] N'keep_partition_changes' ]
[ , [ @allow_subscription_copy = ] N'allow_subscription_copy' ]
[ , [ @allow_synctoalternate = ] N'allow_synctoalternate' ]
[ , [ @validate_subscriber_info = ] N'validate_subscriber_info' ]
[ , [ @add_to_active_directory = ] N'add_to_active_directory' ]
[ , [ @max_concurrent_merge = ] max_concurrent_merge ]
[ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
[ , [ @use_partition_groups = ] N'use_partition_groups' ]
[ , [ @publication_compatibility_level = ] N'publication_compatibility_level' ]
[ , [ @replicate_ddl = ] replicate_ddl ]
[ , [ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot' ]
[ , [ @allow_web_synchronization = ] N'allow_web_synchronization' ]
[ , [ @web_synchronization_url = ] N'web_synchronization_url' ]
[ , [ @allow_partition_realignment = ] N'allow_partition_realignment' ]
[ , [ @retention_period_unit = ] N'retention_period_unit' ]
[ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
[ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
[ , [ @conflict_logging = ] N'conflict_logging' ]
[ ; ]
Arguments
[ @publication = ] N'publicação'
O nome da publicação de fusão para criar.
@publication é sysname, sem padrão, e não pode ser a palavra-chave ALL. O nome da publicação deve ser único dentro da base de dados.
[ @description = ] N'descrição'
A descrição da publicação.
@description é nvarchar(255), com um padrão de NULL.
[ @retention = ] retenção
O período de retenção, em unidades do período de retenção, para o qual se pode guardar as alterações para o @publication em questão.
@retention é int, com um padrão de 14. As unidades de período de retenção são definidas por @retention_period_unit. Se a subscrição não estiver sincronizada dentro do período de retenção, e as alterações pendentes que teria recebido forem removidas por uma operação de limpeza no Distribuidor, a subscrição expira e tem de ser reinicializada. O período máximo permitido de retenção é o número de dias entre 31 de dezembro de 9999 e a data atual.
Note
O período de retenção para publicações da fusão tem um período de carência de 24 horas para acomodar subscritores em diferentes fusos horários. Se, por exemplo, definir um período de retenção de um dia, o período real de retenção é de 48 horas.
[ @sync_mode = ] N'sync_mode'
O modo de sincronização inicial dos assinantes com a publicação. @sync_mode é nvarchar(10) e pode ser um dos seguintes valores.
| Value | Description |
|---|---|
native (padrão) |
Produz saída de programa de cópia em massa em modo nativo de todas as tabelas. |
character |
Produz a saída do programa de cópia em massa em modo carácter de todas as tabelas. Obrigado a suportar assinantes do SQL Server Compact e não-SQL Server. |
[ @allow_push = ] N'allow_push'
Especifica se podem ser criadas subscrições push para a publicação em questão.
@allow_push é nvarchar(5), com um padrão de true, que permite subscrições push na publicação.
[ @allow_pull = ] N'allow_pull'
Especifica se podem ser criadas subscrições pull para a publicação em questão.
@allow_pull é nvarchar(5), com um padrão de true, que permite subscrições pull na publicação. Deve especificar que é verdadeiro para suportar o SQL Server Compact Subscribers.
[ @allow_anonymous = ] N'allow_anonymous'
Especifica se podem ser criadas subscrições anónimas para a publicação em questão.
@allow_anonymous é nvarchar(5), com um padrão de true, que permite subscrições anónimas na publicação. Para suportar assinantes do SQL Server Compact, deve especificar true.
[ @enabled_for_internet = ] N'enabled_for_internet'
Especifica se a publicação está ativada para a Internet e determina se o protocolo de transferência de ficheiros (FTP) pode ser usado para transferir os ficheiros snapshot para um assinante.
@enabled_for_internet é nvarchar(5), com um padrão de false. Se true, os ficheiros de sincronização da publicação são colocados no C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp diretório. O utilizador deve criar o diretório FTP. Se false, a publicação não está ativada para acesso à Internet.
[ @centralized_conflicts = ] N'centralized_conflicts'
Este parâmetro está obsoleto e é mantido para compatibilidade retroativa dos scripts. Use @conflict_logging para especificar o local onde os registos de conflito são armazenados.
[ @dynamic_filters = ] N'dynamic_filters'
Permite que a publicação de fusão use filtros de linha parametrizados.
@dynamic_filters é nvarchar(5), com um padrão de false.
Note
Não deve especificar este parâmetro, mas sim permitir que o SQL Server determine automaticamente se estão a ser usados filtros de linha parametrizados. Se especificar um valor de true para @dynamic_filters, deve definir um filtro de linhas parametrizado para o artigo. Para mais informações, consulte Definir e Modificar um Filtro de Linha Parametrizado para um Artigo de Fusão.
[ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder'
Especifica se os ficheiros snapshot estão armazenados na pasta predefinida.
@snapshot_in_defaultfolder é nvarchar(5), com um padrão de true. Se true, os ficheiros snapshot podem ser encontrados na pasta predefinida. Se false, os ficheiros snapshot são armazenados na localização alternativa especificada por @alternate_snapshot_folder. Locais alternativos podem estar noutro servidor, numa unidade de rede ou num meio removível (como discos removíveis). Também pode guardar os ficheiros snapshot num site do File Transfer Protocol (FTP), para recuperação pelo Assinante posteriormente. Este parâmetro pode ser verdadeiro e ainda assim ter uma localização especificada por @alt_snapshot_folder. Esta combinação especifica que os ficheiros snapshot são armazenados tanto na localização padrão como na alternativa.
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Especifica a localização da pasta alternativa para o snapshot.
@alt_snapshot_folder é nvarchar(255), com um padrão de NULL.
[ @pre_snapshot_script = ] N'pre_snapshot_script'
Especifica um apontador para a localização de um .sql ficheiro.
@pre_snapshot_script é nvarchar(255), com um padrão de NULL. O Merge Agent executa o script pré-snapshot antes de qualquer um dos scripts de objeto replicados ao aplicar o snapshot num Assinante. O script é executado no contexto de segurança utilizado pelo Merge Agent ao ligar-se à base de dados de subscrição. Scripts pré-snapshot não são executados em subscritores do SQL Server Compact.
[ @post_snapshot_script = ] N'post_snapshot_script'
Especifica um apontador para a localização de um .sql ficheiro.
@post_snapshot_script é nvarchar(255), com um padrão de NULL. O Merge Agent executará o script pós-snapshot depois de todos os outros scripts de objetos e dados replicados terem sido aplicados durante uma sincronização inicial. O script é executado no contexto de segurança utilizado pelo Merge Agent ao ligar-se à base de dados de subscrição. Scripts pós-snapshot não são executados em subscritores do SQL Server Compact.
[ @compress_snapshot = ] N'compress_snapshot'
Especifica que o snapshot escrito na localização @alt_snapshot_folder será comprimido no formato Microsoft CAB.
@compress_snapshot é nvarchar(5), com um padrão de false.
falseespecifica que o snapshot não deve ser comprimido.trueespecifica que o snapshot será comprimido.
Ficheiros snapshot com mais de 2 GB não podem ser comprimidos. Os ficheiros de snapshot comprimidos são descomprimidos no local onde o Merge Agent é executado; as subscrições pull são normalmente usadas com snapshots comprimidos para que os ficheiros sejam descomprimidos no Assinante. O snapshot na pasta padrão não pode ser comprimido. Para suportar assinantes do SQL Server Compact, deve especificar false.
[ @ftp_address = ] N'ftp_address'
O endereço de rede do serviço FTP para o Distribuidor.
@ftp_address é sysname, com o padrão de NULL. Especifica onde estão localizados os ficheiros snapshot de publicação para o Merge Agent de um assinante levantar. Como esta propriedade é armazenada para cada publicação, cada publicação pode ter um @ftp_address diferente. A publicação deve suportar a propagação de instantâneos usando FTP.
[ @ftp_port = ] ftp_port
O número da porta do serviço FTP para o Distribuidor.
@ftp_port é int, com um padrão de 21. Especifica onde estão localizados os ficheiros snapshot de publicação para o Merge Agent de um assinante levantar. Como esta propriedade é armazenada para cada publicação, cada publicação pode ter o seu próprio @ftp_port.
[ @ftp_subdirectory = ] N'ftp_subdirectory'
Especifica onde os ficheiros snapshot estão disponíveis para o Merge Agent do assinante recolher, caso a publicação suporte propagação de snapshots usando FTP.
@ftp_subdirectory é nvarchar(255), com um padrão de ftp. Como esta propriedade é armazenada para cada publicação, cada publicação pode ter o seu próprio @ftp_subdirctory ou optar por não ter subdiretório, indicado com um NULL valor.
Ao pré-gerar snapshots para publicações com filtros parametrizados, o snapshot de dados para cada partição do Subscritor tem de estar numa pasta própria. A estrutura de diretórios para instantâneos pré-gerados usando FTP deve obedecer à seguinte estrutura:
<alternate_snapshot_folder>\ftp\<publisher_publicationDB_publication>\<partitionID>.
Note
Os valores no exemplo anterior (em colchetes angulares) dependem das especificidades da publicação e da partição do Subscritor.
[ @ftp_login = ] N'ftp_login'
O nome de utilizador usado para se ligar ao serviço FTP.
@ftp_login é sysname, com um padrão de anonymous.
[ @ftp_password = ] N'ftp_password'
A senha de usuário usada para se conectar ao serviço FTP.
@ftp_password é sysname, com um padrão de NULL.
Importante
Não utilize uma palavra-passe em branco. Use uma palavra-passe forte.
[ @conflict_retention = ] conflict_retention
Especifica o período de retenção, em dias, durante o qual os conflitos são mantidos.
@conflict_retention é int, com um padrão de 14 dias antes da linha de conflito ser eliminada da tabela de conflitos.
[ @keep_partition_changes = ] N'keep_partition_changes'
Especifica se devem ativar otimizações de alteração de partições quando partições pré-computadas não podem ser usadas.
@keep_partition_changes é nvarchar(5), com um padrão de true.
falsesignifica que as alterações de partição não são otimizadas e, quando partições pré-computadas não são usadas, as partições enviadas a todos os Assinantes são verificadas quando os dados alteram numa partição.truesignifica que as alterações de partição são otimizadas, e apenas os Assinantes que têm linhas nas partições alteradas são afetados.
Ao usar partições pré-computadas, defina @use_partition_groups para true e defina @keep_partition_changes para false. Para mais informações, veja Filtros Parametrizados - Otimizar para Partições Pré-computadas.
Note
Se especificar um valor de true para @keep_partition_changes, especifique um valor de 1 para o parâmetro -MaxNetworkOptimizationSnapshot Agent . Para mais informações sobre este parâmetro, consulte Replication Snapshot Agent. Para informações sobre como especificar parâmetros do agente, consulte Administração do Agente de Replicação.
Com SQL Server assinantes do Compact, @keep_partition_changes deve ser definido para true garantir que as eliminações são propagadas corretamente. Quando definido para false, o assinante pode ter mais linhas do que o esperado.
[ @allow_subscription_copy = ] N'allow_subscription_copy'
Permite ou desativa a capacidade de copiar as bases de dados por subscrição que subscrevem esta publicação.
@allow_subscription_copy é nvarchar(5), com um padrão de false. O tamanho da base de dados por subscrição a copiar deve ser inferior a 2 GB.
[ @allow_synctoalternate = ] N'allow_synctoalternate'
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
[ @validate_subscriber_info = ] N'validate_subscriber_info'
Lista as funções que são usadas para definir uma partição de subscritor dos dados publicados quando são usados filtros de linhas parametrizados.
@validate_subscriber_info é nvarchar(500), com um padrão de NULL. Esta informação é usada pelo Merge Agent para validar a partição do Assinante. Por exemplo, se SUSER_SNAME for usado no filtro de linhas parametrizado, o parâmetro deve ser @validate_subscriber_info=N'SUSER_SNAME().
Note
Não deve especificar este parâmetro, mas sim permitir que o SQL Server determine automaticamente o critério de filtragem.
[ @add_to_active_directory = ] N'add_to_active_directory'
Este parâmetro está obsoleto e é mantido para compatibilidade retroativa dos scripts. Já não pode adicionar informação de publicação ao Microsoft Active Directory.
[ @max_concurrent_merge = ] max_concurrent_merge
O número máximo de processos de fusão concorrentes.
@max_concurrent_merge é int, com um padrão de 0. Um valor de 0 para significa que não há limite para o número de processos de fusão concorrentes a correr em qualquer momento.
Esta propriedade estabelece um limite para o número de processos de fusão concorrentes que podem ser executados contra uma publicação de fusão ao mesmo tempo. Se houver mais processos de fusão agendados ao mesmo tempo do que o valor permitido para executar, então os trabalhos excedentes são colocados numa fila e aguardam até que um processo de fusão em execução termine.
[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots
O número máximo de sessões Snapshot Agent que podem ser executadas em simultâneo para gerar snapshots de dados filtrados para partições de assinantes.
@max_concurrent_dynamic_snapshots é int, com um padrão de 0. Se 0, não há limite para o número de sessões de snapshot. Se houver mais processos snapshot agendados ao mesmo tempo do que o valor permitido para executar, então os trabalhos excedentes são colocados numa fila e aguardam até que um processo snapshot em execução termine.
[ @use_partition_groups = ] N'use_partition_groups'
Especifica que partições pré-computadas devem ser usadas para otimizar o processo de sincronização. @use_partition_groups é nvarchar(5), e pode ser um destes valores:
| Value | Description |
|---|---|
true |
A publicação utiliza partições pré-computadas. |
false |
A publicação não utiliza partições pré-computadas. |
NULL (padrão) |
O sistema decide a estratégia de particionamento. |
Partições pré-computadas são usadas por defeito. Para evitar usar partições pré-computadas, @use_partition_groups deve ser definido para false. Quando NULL, o sistema decide se partições pré-computadas podem ser usadas. Se partições pré-computadas não puderem ser usadas, então este valor torna-se false efetivamente sem gerar erros. Nesses casos, @keep_partition_changes pode ser definido para true fornecer alguma otimização. Para mais informações, consulte Filtros Parametrizados - Filtros de Linha Parametrizados e Filtros Parametrizados - Otimizar para Partições Pré-Computadas.
[ @publication_compatibility_level = ] N'publication_compatibility_level'
Indica a compatibilidade retroativa da publicação. @publication_compatibility_level é nvarchar(6), e pode ser um destes valores:
| Value | Versão |
|---|---|
90RTM |
SQL Server 2005 (9.x) |
100RTM |
SQL Server 2008 (10.0.x) |
[ @replicate_ddl = ] replicate_ddl
Indica se a replicação do esquema é suportada para a publicação.
@replicate_ddl é int, com um padrão de NULL.
1 indica que as instruções da linguagem de definição de dados (DDL) executadas no editor são replicadas, e 0 indica que as instruções DDL não são replicadas. Para obter mais informações, consulte Alterações de Esquema em Bancos de Dados de Publicação.
O parâmetro @replicate_ddl é respeitado quando uma instrução DDL adiciona uma coluna. O parâmetro @replicate_ddl é ignorado quando uma instrução DDL altera ou elimina uma coluna pelas seguintes razões.
Quando uma coluna é eliminada,
sysarticlecolumnsdeve ser atualizada para evitar que novas instruções DML incluam a coluna eliminada, o que poderia causar a falha do agente de distribuição. O parâmetro @replicate_ddl é ignorado porque a replicação tem sempre de replicar a alteração do esquema.Quando uma coluna é alterada, o tipo de dado de origem ou a nulidade pode ter mudado, fazendo com que as instruções DML contenham um valor que pode não ser compatível com a tabela do assinante. Tais instruções DML podem causar a falha do agente de distribuição. O parâmetro @replicate_ddl é ignorado porque a replicação tem sempre de replicar a alteração do esquema.
Quando uma instrução DDL adiciona uma nova coluna,
sysarticlecolumnsnão inclui a nova coluna. As instruções DML não tentam replicar dados para a nova coluna. O parâmetro é respeitado porque replicar ou não replicar o DDL é aceitável.
[ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot'
Indica se os Assinantes desta publicação podem iniciar o processo de snapshot para gerar o snapshot filtrado para a sua partição de dados.
@allow_subscriber_initiated_snapshot é nvarchar(5), com um padrão de false.
true indica que os Subscritores podem iniciar o processo de snapshot.
[ @allow_web_synchronization = ] N'allow_web_synchronization'
Especifica se a publicação está ativada para sincronização Web.
@allow_web_synchronization é nvarchar(5), com um padrão de false.
true especifica que as subscrições desta publicação podem ser sincronizadas via HTTPS. Para mais informações, consulte Sincronização Web para Replicação de Fusão. Para suportar assinantes do SQL Server Compact, deve especificar true.
[ @web_synchronization_url = ] N'web_synchronization_url'
Especifica o valor padrão da URL da Internet usada para a sincronização Web.
@web_synchronization_url é nvarchar(500), com um padrão de NULL. Define a URL da Internet por defeito se não estiver explicitamente definida quando sp_addmergepullsubscription_agent é executado.
[ @allow_partition_realignment = ] N'allow_partition_realignment'
Determina se as eliminações são enviadas ao assinante quando a modificação da linha no editor faz com que este altere a sua partição.
@allow_partition_realignment é nvarchar(5), com um padrão de true.
trueenvia eliminações ao Assinante para refletir os resultados de uma alteração de partição, removendo dados que já não fazem parte da partição do Assinante.falsedeixa os dados de uma partição antiga no Assinante, onde as alterações feitas a esses dados no Publisher não se replicam para este Assinante, mas as alterações feitas no Assinante replicam para o Publisher.
Definir @allow_partition_realignmentfalse é usado para reter dados numa subscrição de uma partição antiga quando os dados precisam de ser acessíveis para fins históricos.
Note
Os dados que permanecem no Assinante como resultado da definição defalse @allow_partition_realignment devem ser tratados como se fossem apenas leitura; no entanto, isto não é imposto pelo sistema de replicação.
[ @retention_period_unit = ] N'retention_period_unit'
Especifica as unidades para o período de retenção definido por @retention. @retention_period_unit é nvarchar(10), e pode ser um dos seguintes valores.
| Value | Versão |
|---|---|
day (padrão) |
O período de retenção é especificado em dias. |
week |
O período de retenção é especificado em semanas. |
month |
O período de retenção é especificado em meses. |
year |
O período de retenção é especificado em anos. |
[ @generation_leveling_threshold = ] generation_leveling_threshold
Especifica o número de alterações contidas numa geração. Uma geração é um conjunto de alterações que são entregues a um Publisher ou Assinante.
@generation_leveling_threshold é int, com um padrão de 1000.
[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
Especifica se as alterações são carregadas do Assinante antes de uma reinicialização automática exigida por uma alteração na publicação, onde foi especificado um valor de 1 para @force_reinit_subscription.
@automatic_reinitialization_policy é bit, com um padrão de 0.
1 significa que as alterações são carregadas pelo Assinante antes de ocorrer uma reinicialização automática.
Importante
Se adicionar, eliminar ou alterar um filtro parametrizado, as alterações pendentes no Assinante não podem ser carregadas para o Publisher durante a reinicialização. Se quiseres carregar alterações pendentes, sincroniza todas as subscrições antes de mudar o filtro.
[ @conflict_logging = ] N'conflict_logging'
Especifica onde os registos de conflito são armazenados. @conflict_logging é nvarchar(15), e pode ser um dos seguintes valores:
| Value | Description |
|---|---|
publisher |
Os registos de conflito são armazenados no Publisher. |
subscriber |
Os registos de conflito são armazenados no Assinante que causou o conflito. Não é suportado para assinantes do SQL Server Compact. |
both |
Os registos de conflito são armazenados tanto no Publisher como no Subscritor. |
NULL (padrão) |
A replicação define automaticamente @conflict_logging para both quando o valor @publication_compatibility_level é 90RTM e para publisher em todos os outros casos. |
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Remarks
sp_addmergepublication é usado na replicação por fusão.
Para listar objetos de publicação no Active Directory usando o parâmetro @add_to_active_directory, o objeto SQL Server deve já ter sido criado no Active Directory.
Se existirem múltiplas publicações que publicam o mesmo objeto de base de dados, apenas publicações com valor @replicate_ddl1 de replicar ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION, e ALTER TRIGGER instruções DDL. No entanto, uma ALTER TABLE DROP COLUMN declaração DDL será replicada por todas as publicações que publicam a coluna eliminada.
Para SQL Server Assinantes Compactos, o valor de @alternate_snapshot_folder só é usado quando o valor de @snapshot_in_default_folder é false.
Com a replicação DDL ativada (@replicate_ddl = 1) para uma publicação, para fazer alterações DDL não replicativas na publicação, sp_changemergepublication deve primeiro ser executada para definir @replicate_ddl como 0. Depois de emitidas as instruções DDL não replicantes, sp_changemergepublication pode ser executado novamente para ativar a replicação DDL.
Examples
-- To avoid storing the login and password in the script file, the value
-- is passed into SQLCMD as a scripting variable. 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".
--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @login = $(Login);
SET @password = $(Password);
-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'merge publish',
@value = N'true'
-- Create a new merge publication, explicitly setting the defaults.
USE [AdventureWorks2022]
EXEC sp_addmergepublication
-- These parameters are optional.
@publication = @publication,
-- optional parameters
@description = N'Merge publication of AdventureWorks2022.',
@publication_compatibility_level = N'120RTM';
-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
GO
Permissions
Apenas os membros do papel fixo de servidor administrador do sistema ou db_owner papel fixo de base de dados podem executar sp_addmergepublication.