sp_changepublication (Transact-SQL)

Altera as propriedades de uma publicação. 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_changepublication [ [ @publication = ] 'publication' ]
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Argumentos

  • [ @publication = ] 'publication'
    É o nome da publicação. publication é sysname, com um padrão NULO .

  • [ @property = ] 'property'
    É a propriedade a ser alterada. property é nvarchar(255).

  • [ @value = ] 'value'
    É o valor da nova propriedade. value é nvarchar(255), com um valor padrão de NULO.

    Essa tabela descreve as propriedades da publicação que podem ser alteradas e restrições nos valores dessas propriedades.

    Propriedade

    Valor

    Descrição

    allow_anonymous

    true

    Podem ser criadas assinaturas anônimas para a publicação determinada e immediate_sync também deve ser true. Não pode ser alterado para publicações ponto a ponto.

     

    false

    Não podem ser criadas assinaturas anônimas para a publicação determinada. Não pode ser alterado para publicações ponto a ponto.

    allow_initialize_from_backup

    true

    Os Assinantes podem iniciar uma assinatura para essa publicação de um backup em vez de um instantâneo inicial. Essa propriedade não pode ser alterada para publicações que não sejam do Microsoft SQL Server.

     

    false

    Assinantes devem usar o instantâneo inicial. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    allow_partition_switch

    true

    As instruções ALTER TABLE…SWITCH podem ser executadas no banco de dados publicado. Para obter mais informações, consulte Replicando tabelas e índices particionados.

    false

    As instruções ALTER TABLE…SWITCH não podem ser executadas no banco de dados publicado.

    allow_pull

    true

    São permitidas assinaturas pull para a publicação determinada. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

     

    false

    Não são permitidas assinaturas pull para a publicação determinada. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    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_subscription_copy

    true

    Habilita a capacidade de copiar bancos de dados que assinam esta publicação. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

     

    false

    Desabilita a capacidade de copiar bancos de dados que assinam esta publicação. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    alt_snapshot_folder

     

    Local da pasta alternativa para o instantâneo.

    centralized_conflicts

    true

    Registros de conflito são armazenados no Publicador. Só poderá ser alterado se não houver nenhuma assinatura ativa. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

     

    false

    Registros de conflito são armazenados no Publicador e no Assinante que causou o conflito. Só poderá ser alterado se não houver nenhuma assinatura ativa. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    compress_snapshot

    true

    Instantâneo em uma pasta de instantâneo alternativa é compactado no formato de arquivo .cab. O instantâneo na pasta de instantâneo padrão não pode ser compactado.

     

    false

    O instantâneo não é compactado, o que é o comportamento padrão para replicação.

    conflict_policy

    pub wins

    Política de resolução de conflito para atualizar Assinantes em que o Publicador vence o conflito. Essa propriedade só poderá ser alterada se não houver assinaturas ativas. Sem suporte para Editores Oracle.

     

    sub reinit

    Na atualização de Assinantes, se ocorrer um conflito a assinatura deverá ser reiniciada. Essa propriedade só poderá ser alterada se não houver assinaturas ativas. Sem suporte para Editores Oracle.

     

    sub wins

    Política de resolução de conflito para atualização de Assinantes onde o Assinante vence o conflito. Essa propriedade só poderá ser alterada se não houver assinaturas ativas. Sem suporte para Editores Oracle.

    conflict_retention

     

    int que especifica o período de retenção do conflito, em dias. A retenção padrão é 14 dias. 0 significa que nenhuma limpeza de conflito é necessária. Sem suporte para Editores Oracle.

    description

     

    Entrada opcional que descreve a publicação.

    enabled_for_het_sub

    true

    Permite a publicação a dar suporte a Assinantes não-SQL Server. enabled_for_het_sub não pode ser alterado quando existem assinaturas na publicação. Pode ser necessário executar sp_changepublication (Transact-SQL) para obedecer aos requisitos seguintes antes de definir enabled_for_het_sub como verdadeiro:

    • allow_queued_tran deve ser false.

    • allow_sync_tran deve ser false.

    A alteração de enabled_for_het_sub para true pode alterar configurações de publicação existentes. Para obter mais informações, consulte Assinantes não SQL Server. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    false

    A publicação não dá suporte a Assinantes não-SQL Server. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    enabled_for_internet

    true

    A publicação é habilitada para a Internet, e o FTP (File Transfer Protocol) pode ser usado para transferir os arquivos de instantâneo a um assinante. Os arquivos de sincronização para a publicação são colocados no seguinte diretório: C:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Repldata\ftp. ftp_address não pode ser NULL. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

     

    false

    A publicação não está habilitada para a Internet. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    enabled_for_p2p

    true

    A publicação oferece suporte a replicação ponto a ponto. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    Para definir enabled_for_p2p como true, as seguintes restrições se aplicam:

    • allow_anonymous deve ser false

    • allow_dts deve ser false.

    • allow_initialize_from_backup deve ser true

    • allow_queued_tran deve ser false.

    • allow_sync_tran deve ser false.

    • enabled_for_het_sub deve ser false.

    • independent_agent deve ser true.

    • repl_freq deve ser continuous.

    • replicate_ddl deve ser 1.

    false

    A publicação não oferece suporte a replicação ponto a ponto. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    ftp_address

     

    Local acessível de FTP dos arquivos de instantâneo de publicação. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    ftp_login

     

    Nome de usuário para conexão com o serviço de FTP e o valor ANONYMOUS são permitidos. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    ftp_password

     

    Senha para o nome de usuário usado na conexão com o serviço de FTP. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    ftp_port

     

    Número da porta do serviço FTP para Distribuidor. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    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. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

    immediate_sync

    true

    Arquivos de sincronização para a publicação são criados ou recriados em cada execução do Snapshot Agent. Assinantes podem receber arquivos de sincronização imediatamente após a assinatura, se o Snapshot Agent foi concluído uma vez antes da assinatura. Novas assinaturas obtêm os arquivos de sincronização mais novos gerados pela execução mais recente do Snapshot Agent. independent_agent também deve ser true.

     

    false

    Arquivos de sincronização só serão criados se houver novas assinaturas. Assinantes não podem receber arquivos de sincronização após a assinatura até que o Snapshot Agent seja iniciado e concluído.

    independent_agent

    true

    A publicação tem seu próprio Distribution Agent dedicado.

     

    false

    A publicação usa um Distribution Agent compartilhado e cada par de banco de dados de publicação/assinatura tem um agente compartilhado.

    p2p_continue_onconflict

    true

    O Distribution Agent continua processando alterações quando um conflito é detectado.

    Observação sobre cuidadosCuidado
    Recomendamos que você use o valor padrão de FALSE. Quando essa opção é definida como TRUE, o Distribution Agent tenta convergir os dados na topologia aplicando a linha conflitante do nó que tem a ID de origem mais alta. Esse método não garante convergência. Verifique se a topologia está consistente depois que um conflito é detectado. Para obter mais informações, consulte “Tratamento de conflitos” emDetecção de conflitos na replicação ponto a ponto.

    false

    O Distribution Agent deixa de processar alterações quando um conflito é detectado.

    post_snapshot_script

     

    Especifica o local de um arquivo de script Transact-SQL que o Distribution Agent executa depois que todos os outros scripts de objetos e dados replicados foram aplicados durante uma sincronização inicial.

    pre_snapshot_script

     

    Especifica o local de um arquivo de script Transact-SQL que o Distribution Agent executa antes que todos os outros scripts de objetos e dados replicados sejam aplicados durante uma sincronização inicial.

    publish_to_ActiveDirectory

    true

    Esse parâmetro foi preterido e tem suporte somente para compatibilidade com versões anteriores. Você já não pode adicionar informações de publicação ao Microsoft Active Directory.

     

    false

    Remove as informações de publicação do Active Directory.

    queue_type

    sql

    Use o SQL Server para armazenar transações. Essa propriedade só poderá ser alterada se não houver assinaturas ativas.

    ObservaçãoObservação
    O suporte para uso do Serviço de Enfileiramento de Mensagens da Microsoft foi descontinuado. A especificação de um de msmq para value resulta em um erro.

    repl_freq

    continuous

    Publica saída de todas as transações com base em log.

     

    snapshot

    Publica somente eventos de sincronização agendados.

    replicate_ddl

    1

    Instruções DDL (linguagem de definição de dados) executadas no Publicador são replicadas. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server.

     

    0

    Instruções DDL não são replicadas. Essa propriedade não pode ser alterada em publicações que não sejam do SQL Server. A replicação de alterações de esquema não pode ser desabilitada ao usar replicação ponto a ponto.

    replicate_partition_switch

    true

    As instruções ALTER TABLE…SWITCH que são executadas no banco de dados publicado devem ser replicadas para Assinantes. Esta opção só será válida se allow_partition_switch for definido como TRUE. Para obter mais informações, consulte Replicando tabelas e índices particionados.

    false

    As instruções ALTER TABLE…SWITCH que não devem ser replicadas para Assinantes.

    retention

     

    int que representa o período de retenção, em horas, para atividade de assinatura. Se uma assinatura não estiver ativa dentro do período de retenção, será removida.

    snapshot_in_defaultfolder

    true

    Arquivos de instantâneo são armazenados na pasta de instantâneos padrão. Se alt_snapshot_folder também for especificado, arquivos de instantâneo serão armazenados nos locais padrão e alternativo.

     

    false

    Arquivos de instantâneo são armazenados no local alternativo, especificado por alt_snapshot_folder.

    status

    ativo

    Dados de Publicação estão imediatamente disponíveis para os Assinantes quando a publicação é criada. Sem suporte para Editores Oracle.

     

    inativo

    Dados de Publicação não estão disponíveis para os Assinantes quando a publicação é criada. Sem suporte para Editores Oracle.

    sync_method

    nativo

    Usa saída de cópia em massa do modo nativo de todas as tabelas ao sincronizar assinaturas.

     

    character

    Usa saída de cópia em massa do modo de caractere de todas as tabelas ao sincronizar assinaturas.

     

    concurrent

    Usa saída de programa de cópia em massa do modo nativo de todas as tabelas, mas não bloqueia as tabelas durante o processo de geração de instantâneo. Não válido para replicação de instantâneo.

     

    concurrent_c

    Usa saída de programa de cópia em massa do modo de caractere de todas as tabelas, mas não bloqueia as tabelas durante o processo de geração de instantâneo. Não válido para replicação de instantâneo.

    taskid

     

    Essa propriedade foi preterida e não tem mais suporte.

    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 as alterações no artigo 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 as alterações no artigo 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 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, com um padrão 0.

    0 especifica que as alterações no artigo não fazem com que a assinatura seja reiniciada. 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 no artigo causam a reinicialização de assinaturas existentes e dão permissão para que a assinatura seja reiniciada.

  • [ @publisher = ] 'publisher'
    Especifica um Publicador não-SQL Server. publisher é sysname, com um padrão NULL.

    ObservaçãoObservação

    publisher não deve ser usado ao alterar propriedades de artigo em um Publicador SQL Server.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_changepublication é usado em replicação de instantâneo e replicação transacional.

A alteração de qualquer uma das propriedades seguintes requer que um novo instantâneo seja gerado e você deve especificar um valor de 1 para o parâmetro force_invalidate_snapshot.

  • alt_snapshot_folder

  • compress_snapshot

  • enabled_for_het_sub

  • ftp_address

  • ftp_login

  • ftp_password

  • ftp_port

  • ftp_subdirectory

  • post_snapshot_script

  • pre_snapshot_script

  • snapshot_in_defaultfolder

  • sync_mode

Para listar objetos de publicação no Active Directory usando o parâmetro publish_to_active_directory, o objeto SQL Server deverá estar criado no Active Directory.

Exemplo

DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran' 

-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_changepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0
GO

Permissões

Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_changepublication.