Partilhar via


sp_changemergepublication (Transact-SQL)

Altera as propriedades de uma publicação de mesclagem. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_changemergepublication [ @publication= ] 'publication'
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argumentos

  • [ @publication=\] 'publication'
    O nome da publicação. publication é sysname, sem padrão.

  • [ @property=\] 'property'
    A propriedade a ser alterada de uma determinada publicação. property é sysname e pode ser um dos valores listados na tabela a seguir.

  • [ @value=\] 'value'
    O novo valor da propriedade especificada. value é nvarchar(255) 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

    Dados de uma partição antiga serão deixados no Assinante, onde as alterações feitas nesses dados no Publicador não serã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

    Não são permitidas assinaturas pull para a publicação determinada.

    allow_push

    true

    São permitidas assinaturas push para a publicação determinada.

     

    false

    Não são permitidas assinaturas push para a publicação determinada.

    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 essa 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 um parceiro padrão de sincronização alternativo para fazer a sincronização com esse Publicador.

    allow_web_synchronization

    true

    As assinaturas podem ser sincronizadas pelo HTTP.

     

    false

    As assinatura não podem ser sincronizadas pelo HTTP.

    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 desta propriedade requer um novo instantâneo.

     

    false

    Por padrão, o instantâneo 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. Sem suporte para Assinantes do SQL Server Compact 3.5 SP1.

     

    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, no qual os conflitos são retidos. A definição de 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 para a publicação são colocados no diretório C:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Repldata\ftp.

     

    false

    A publicação não está habilitada para a Internet.

    ftp_address

     

    O endereço de rede do serviço de 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 de 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 contido em uma geração. Uma geração é uma coleção de alterações entregues a um Publicador ou Assinante. Para obter mais informações, consulte Como a replicação de mesclagem rastreia e enumera alterações.

    keep_partition_changes

    true

    A sincronização é otimizada e somente Assinantes com linhas nas partições alteradas são afetados. A alteração desta propriedade requer um novo instantâneo.

     

    false

    A sincronização não será otimizada e as partições que são enviadas a todos os Assinantes serão verificadas quando os dados forem alterados em uma partição. A alteração desta propriedade requer um novo instantâneo.

    max_concurrent_merge

     

    Esta é uma int que representa o número máximo de processos de mesclagem simultâneos que podem ser executados em uma publicação. Se for 0, não há limite. Se um número maior de processos de mesclagem for agendado para execução ao mesmo tempo, os trabalhos em excesso serão enfileirados e esperarão até que um processo de mesclagem atual seja concluído.

    max_concurrent_dynamic_snapshots

     

    Este é um int que representa o número máximo de sessões de instantâneo simultâneas para gerar instantâneos de dados filtrados que podem ser executados simultaneamente em uma publicação de mesclagem que usa filtros de linha com parâmetros. Se 0, não há nenhum 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 arquivo .sql. O Distribution Agent ou Merge Agent 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 arquivo .sql. O Merge Agent 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

    90RTM

    SQL Server 2005

     

    80SP3

    SQL Server 2000 SP3

    80SP2

    SQL Server 2000 SP2

     

    80SP1

    SQL Server 2000 SP2

     

    80RTM

    SQL Server 2000

     

    70 SP4

    SQL Server 7.0 SP4

     

    70SP3

    SQL Server 7.0 SP3

     

    70SP2

    SQL Server 7.0 SP2

     

    70SP1

    SQL Server 7.0 SP1

     

    70RTM

    SQL Server 7.0

    publish_to_activedirectory

    true

    Esse parâmetro foi preterido e tem suporte somente 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

    Instruções DDL não são replicadas.

    retention

     

    Este é um int que representa o número de unidades retention_period_unit para as quais salvar alterações para a publicação determinada. Se a assinatura não estiver sincronizada dentro do período de retenção e as alterações pendentes que por ventura tenha recebido tiverem sido removidas por uma operação de limpeza no Distribuidor, a assinatura irá expirar e deverá ser reiniciada. 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çãoObservação
    O período de retenção para publicações de mesclagem tem um período de tolerância de 24 horas para acomodar Assinantes em fusos horários diferentes.

    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

    Arquivos de instantâneo são armazenados no local alternativo, especificado por alt_snapshot_folder. Essa combinação especifica que os arquivos de instantâneo serão armazenados nos locais padrão e alternativo.

    snapshot_ready

    true

    Instantâneo disponível para a publicação.

     

    false

    Instantâneo não disponível para a publicação.

    status

    active

    Publicação com status ativo.

     

    inactive

    Publicação com status inativo.

    sync_mode

    native ou

    bcp 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

    Saída de programa de cópia em massa em modo de caractere de todas as tabelas é usada para o instantâneo inicial, que é exigido de todos os Assinantes não-SQL Server.

    use_partition_groups

    ObservaçãoObservação
    Depois de usar partition_groups, se quiser reverter usando setupbelongs e definir use_partition_groups=false em changemergearticle, isso pode não se refletir corretamente depois de tirar um instantâneo. Os gatilhos que são gerados através do instantâneo são compatíveis com grupos de partição. A solução para este cenário é definir o status como Inactive, modificar o use_partition_groups e, depois, definir o status como Active.

    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. Depois, valida o critério de filtro dinâmico que está sendo usado pelo Assinante para verificar se as informações serão particionadas consistentemente.

    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
    Reconhece que a ação tomada por esse procedimento armazenado pode invalidar um instantâneo existente. force_invalidate_snapshot é um bit, com um padrão 0.

    0 especifica que alterações na publicação não invalidam 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 alterações na publicação podem invalidar o instantâneo. Se houver assinaturas existentes que exigem um novo instantâneo, esse valor dará permissão para que o instantâneo existente seja marcado como obsoleto e um novo instantâneo seja gerado.

    Consulte a seção Comentários para obter as propriedades que, quando alteradas, requerem a geração de um novo instantâneo.

  • [ @force\_reinit\_subscription = ] force_reinit_subscription
    Reconhece que a ação tomada por esse procedimento armazenado pode requerer que as assinaturas existentes sejam reinicializadas. force_reinit_subscription é um bit, sem um padrão 0.

    0 especifica que alterações na publicação não exigem que as assinaturas sejam reiniciadas. Se o procedimento armazenado detectar que a alteração irá requerer que as assinaturas existentes sejam reiniciadas, ocorrerá um erro e nenhuma alteração será feita.

    1 especifica que alterações na publicação fazem com que assinaturas existentes sejam reinicializadas e permite que ocorra a reinicialização da assinatura.

    Consulte a seção Comentários para as propriedades que, quando alteradas, requerem que todas as assinaturas existentes sejam reiniciadas.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_changemergepublication é usado em replicação de mesclagem.

Alterar as propriedades a seguir requer que um instantâneo novo seja gerado. Você deve especificar um valor manual 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 para 80SP3)

  • 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 manual 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 SQL Server já deverá ter sido criado no Active Directory.

Exemplo

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Permissões

Só membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner pode executar sp_changemergepublication.