sp_changemergepublication (Transact-SQL)
Aplica-se: SQL Server
Altera as propriedades de uma publicação de mesclagem. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
Argumentos
@publication [ = ] N'publicação'
O nome da publicação. @publication é sysname, sem padrão.
@property [ = ] N'propriedade'
A propriedade a ser alterada para a publicação determinada. @property é sysname e pode ser um dos valores listados na tabela a seguir.
@value [ = ] N'valor'
O novo valor da propriedade especificada. @value é nvarchar(255), com um padrão de NULL
.
e pode ser um dos valores listados na tabela a seguir.
Essa tabela descreve as propriedades da publicação que podem ser alteradas e as restrições nos valores dessas propriedades.
Propriedade | Valor | Descrição |
---|---|---|
allow_anonymous |
true |
Assinaturas anônimas são permitidas. |
false |
Assinaturas anônimas não são permitidas. | |
allow_partition_realignment |
true |
Exclusões são enviadas para o Assinante para refletir os resultados de uma alteração de partição, removendo dados que não pertencem mais à partição do Assinante. Esse é o comportamento padrão. |
false |
Os dados de uma partição antiga são deixados no Assinante, onde as alterações feitas nesses dados no Publicador não são replicadas para esse Assinante. Em vez disso, as alterações feitas no Assinante serão replicadas no Publicador. Isso é usado para reter dados em uma assinatura de uma partição antiga quando os dados precisam estar acessíveis para fins de histórico. | |
allow_pull |
true |
São permitidas assinaturas pull para a publicação determinada. |
false |
Assinaturas pull não são permitidas para a publicação fornecida. | |
allow_push |
true |
São permitidas assinaturas push para a publicação determinada. |
false |
Assinaturas push não são permitidas para a publicação fornecida. | |
allow_subscriber_initiated_snapshot |
true |
O Assinante pode iniciar o processo de instantâneo. |
false |
O assinante não pode iniciar o processo de instantâneo. | |
allow_subscription_copy |
true |
Você pode copiar os bancos de dados de assinatura que assinam essa publicação. |
false |
Você não pode copiar os bancos de dados de assinatura que assinam esta publicação. | |
allow_synctoalternate |
true |
Permite um parceiro padrão de sincronização alternativo para fazer a sincronização com esse Publicador. |
false |
Não permite que um parceiro de sincronização alternativo sincronize com este Publicador. | |
allow_web_synchronization |
true |
As assinaturas podem ser sincronizadas pelo HTTP. |
false |
As assinaturas não podem ser sincronizadas por HTTPS. | |
alt_snapshot_folder |
Especifica o local da pasta alternativa para o instantâneo. | |
automatic_reinitialization_policy |
1 |
As alterações são carregadas do Assinante antes que a assinatura seja reiniciada. |
0 |
A assinatura é reiniciada sem primeiro carregar as alterações. | |
centralized_conflicts |
true |
Todos os registros de conflito são armazenados no Publicador. Se você alterar esta propriedade, os Assinantes existentes deverão ser reinicializados. |
false |
Os registros de conflito são armazenados no servidor que perdeu na resolução de conflito. Se você alterar esta propriedade, os Assinantes existentes deverão ser reinicializados. | |
compress_snapshot |
true |
O instantâneo em uma pasta de instantâneo alternativa é compactado no formato CAB. O instantâneo na pasta de instantâneo padrão não pode ser compactado. A alteração dessa propriedade requer um novo instantâneo. |
false |
Por padrão, o snapshot não é compactado. A alteração dessa propriedade requer um novo instantâneo. | |
conflict_logging |
publisher |
Registros de conflito são armazenados no Publicador. |
subscriber |
Registros de conflito são armazenados no Assinante que causou o conflito. Não há suporte para Assinantes do SQL Server Compact. | |
both |
Registros de conflito são armazenados no Publicador e no Assinante. | |
conflict_retention |
Um int que especifica o período de retenção, em dias, para o qual os conflitos são mantidos. Definir conflict_retention como 0 significa que nenhuma limpeza de conflito é necessária. |
|
description |
Descrição da publicação. | |
dynamic_filters |
true |
Publicação é filtrada com base em uma cláusula dinâmica. |
false |
A publicação não é filtrada dinamicamente. | |
enabled_for_internet |
true |
A publicação está habilitada para a Internet. O FTP (Protocolo de Transferência de Arquivo) pode ser usado para transferir os arquivos de instantâneo para um Assinante. Os arquivos de sincronização da publicação são colocados no C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp diretório. |
false |
A publicação não está habilitada para a Internet. | |
ftp_address |
O endereço de rede do serviço FTP para o Distribuidor. Especifica onde são armazenados arquivos de instantâneo de publicação. | |
ftp_login |
O nome de usuário usado na conexão com o serviço de FTP. | |
ftp_password |
A senha de usuário usada na conexão com o serviço de FTP. | |
ftp_port |
O número da porta do serviço FTP do Distribuidor. Especifica o número da porta TCP do site de FTP onde os arquivos de instantâneo de publicação são armazenados. | |
ftp_subdirectory |
Especifica onde os arquivos de instantâneo são criados se a publicação oferecer suporte a instantâneos de propagação usando o FTP. | |
generation_leveling_threshold |
int | Especifica o número de alterações contidas em uma geração. Uma geração é uma coleção de alterações que é entregue a um Publicador ou Assinante. |
keep_partition_changes |
true |
A sincronização é otimizada e somente Assinantes com linhas nas partições alteradas são afetados. A alteração dessa propriedade requer um novo instantâneo. |
false |
A sincronização não é otimizada e as partições enviadas aos Assinantes são verificadas quando os dados são alterados em uma partição. A alteração dessa propriedade requer um novo instantâneo. | |
max_concurrent_merge |
Um int que representa o número máximo de processos de mesclagem simultâneos que podem ser executados em uma publicação. Se 0, não há limite. Se mais do que esse número de processos de mesclagem estiver agendado para ser executado ao mesmo tempo, os trabalhos excedentes serão colocados em uma fila até que um processo de mesclagem atual seja concluído. | |
max_concurrent_dynamic_snapshots |
Um int que representa o número máximo de sessões de instantâneo para gerar um instantâneo de dados filtrado que pode ser executado simultaneamente em uma publicação de mesclagem que usa filtros de linha com parâmetros. Se 0 , não há limite. Se um número maior de processos de instantâneo for agendado para execução ao mesmo tempo, os trabalhos em excesso serão enfileirados e esperarão até que o processo de mesclagem atual seja concluído. |
|
post_snapshot_script |
Especifica um ponteiro para um local de .sql arquivo. O Agente de Distribuição ou Agente de Mesclagem executará o script pós-instantâneo depois que todos os outros scripts de objeto replicado tentam sido aplicados durante uma sincronização inicial. A alteração dessa propriedade requer um novo instantâneo. |
|
pre_snapshot_script |
Especifica um ponteiro para um local de .sql arquivo. O Agente de Mesclagem executará o script pré-instantâneo antes de qualquer script de objeto replicado, ao aplicar um instantâneo no Assinante. A alteração dessa propriedade requer um novo instantâneo. |
|
publication_compatibility_level |
100RTM |
SQL Server 2008 (10.0.x) |
90RTM |
SQL Server 2005 (9.x) | |
publish_to_activedirectory |
true |
Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Você não pode mais adicionar informações de publicação no Active Directory. |
false |
Remove as informações de publicação do Active Directory. | |
replicate_ddl |
1 |
Instruções DDL (Linguagem de Definição de Dados) executadas no Publicador são replicadas. |
0 |
As instruções DDL não são replicadas. | |
retention |
Um int que representa o número de retention_period_unit unidades para as quais salvar as alterações para a publicação especificada. Se a assinatura não for sincronizada dentro do período de retenção e as alterações pendentes recebidas tiverem sido removidas por uma operação de limpeza no Distribuidor, a assinatura expirará e deverá ser reinicializada. O período máximo de retenção permitido é o número de dias entre 31 de dezembro de 9999 e a data atual.Observação: o período de retenção para publicações de mesclagem tem um período de carência de 24 horas para acomodar assinantes em diferentes fusos horários. |
|
retention_period_unit |
day |
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. | |
snapshot_in_defaultfolder |
true |
Arquivos de instantâneo são armazenados na pasta de instantâneos padrão. |
false |
Os arquivos de instantâneo são armazenados no local alternativo especificado pelo alt_snapshot_folder . Essa combinação especifica que os arquivos de instantâneo são armazenados nos locais padrão e alternativo. |
|
snapshot_ready |
true |
Instantâneo disponível para a publicação. |
false |
O instantâneo da publicação não está disponível. | |
status |
active |
Publicação com status ativo. |
inactive |
Publicação com status inativo. | |
sync_mode |
native oubcp native |
Saída de programa de cópia em massa em modo nativo de todas as tabelas é usada para o instantâneo inicial. |
character ou bcp character |
A saída do programa de cópia em massa no modo de caractere de todas as tabelas é usada para o instantâneo inicial, que é necessário para todos os Assinantes não SQL Server. | |
use_partition_groups Observação: Depois de usar grupos de partições, se você voltar a usar setupbelongs e definir use_partition_groups=false o changemergearticle , isso pode não ser refletido corretamente depois que um instantâneo for tirado. Os gatilhos gerados pelo instantâneo são compatíveis com grupos de partições.A solução alternativa para esse cenário é definir o status como Inativo, modificar o e, em seguida, definir o use_partition_groups status como Ativo. |
true |
A publicação usa partições pré-computadas. |
false |
A publicação não usa partições pré-computadas. | |
validate_subscriber_info |
Lista as funções que estão sendo usadas para recuperar informações do Assinante. Em seguida, valida os critérios de filtragem dinâmica usados para o Assinante para verificar se as informações são particionadas de forma consistente. | |
web_synchronization_url |
Valor padrão do URL da Internet usado para sincronização da Web. | |
NULL (padrão) |
Retorna a lista de valores com suporte para @property. |
@force_invalidate_snapshot [ = ] force_invalidate_snapshot
Confirma que a ação executada por esse procedimento armazenado pode invalidar um instantâneo existente. @force_invalidate_snapshot é bit, com um padrão de 0
.
0
Especifica que alterar a publicação não invalida o instantâneo. Se o procedimento armazenado detectar que a alteração requer um novo instantâneo, ocorrerá um erro e nenhuma alteração será feita.1
especifica que alterar a publicação pode invalidar o instantâneo. Se houver assinaturas existentes que exijam um novo instantâneo, dá permissão para que o instantâneo existente seja marcado como obsoleto e para que um novo instantâneo seja gerado.
Consulte a seção Comentários para obter as propriedades que, quando alteradas, exigem que um novo instantâneo seja gerado.
@force_reinit_subscription [ = ] force_reinit_subscription
Confirma que a ação executada por esse procedimento armazenado pode exigir que as assinaturas existentes sejam reinicializadas. @force_reinit_subscription é bit, com um padrão de 0
.
0
Especifica que a alteração da publicação não exige que as assinaturas sejam reinicializadas. Se o procedimento armazenado detectar que a alteração requer que as assinaturas existentes sejam reinicializadas, ocorrerá um erro e nenhuma alteração será feita.1
significa que as alterações na publicação reinicializam as assinaturas existentes e dão permissão para que a reinicialização da assinatura ocorra.
Consulte a seção Comentários para obter as propriedades que, quando alteradas, exigem que todas as assinaturas existentes sejam reinicializadas.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Comentários
sp_changemergepublication
é usado na replicação de mesclagem.
A alteração das propriedades a seguir requer que um novo instantâneo seja gerado. Você deve especificar um valor de 1
para o parâmetro @force_invalidate_snapshot .
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level
(apenas para80SP3
)pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
Alterar as propriedades a seguir requer que assinaturas existentes sejam reinicializadas. Você deve especificar um valor de 1
para o parâmetro @force_reinit_subscription .
dynamic_filters
validate_subscriber_info
Para listar objetos de publicação no Active Directory usando publish_to_active_directory
, o objeto do SQL Server já deve ter sido criado no Active Directory.
Exemplos
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Permissões
Somente membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_changemergepublication
.