Share via


sp_addmergearticle (Transact-SQL)

Adiciona um artigo a uma publicação existente Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_addmergearticle [ @publication = ] 'publication'  
        , [ @article = ] 'article'  
        , [ @source_object = ] 'source_object' 
    [ , [ @type = ] 'type' ] 
    [ , [ @description = ] 'description' ] 
    [ , [ @column_tracking = ] 'column_tracking' ] 
    [ , [ @status = ] 'status' ] 
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ] 
    [ , [ @creation_script = ] 'creation_script' ] 
    [ , [ @schema_option = ] schema_option ] 
    [ , [ @subset_filterclause = ] 'subset_filterclause' ] 
    [ , [ @article_resolver = ] 'article_resolver' ] 
    [ , [ @resolver_info = ] 'resolver_info' ] 
    [ , [ @source_owner = ] 'source_owner' ] 
    [ , [ @destination_owner = ] 'destination_owner' ] 
    [ , [ @vertical_partition = ] 'vertical_partition' ] 
    [ , [ @auto_identity_range = ] 'auto_identity_range' ] 
    [ , [ @pub_identity_range = ] pub_identity_range ] 
    [ , [ @identity_range = ] identity_range ] 
    [ , [ @threshold = ] threshold ] 
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ] 
    [ , [ @destination_object = ] 'destination_object' ] 
    [ , [ @allow_interactive_resolver = ] 'allow_interactive_resolver' ] 
    [ , [ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' ] 
    [ , [ @check_permissions = ] check_permissions ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @published_in_tran_pub = ] 'published_in_tran_pub' ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' ]
    [ , [ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' ]
    [ , [ @partition_options = ] partition_options ]
    [ , [ @processing_order = ] processing_order ]
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]
    [ , [ @identityrangemanagementoption = ] 'identityrangemanagementoption' ]
    [ , [ @delete_tracking = ] delete_tracking ]
    [ , [ @compensate_for_errors = ] 'compensate_for_errors' ] 
    [ , [ @stream_blob_columns = ] 'stream_blob_columns' ]

Argumentos

  • [ @publication= ] 'publication'
    É o nome da publicação que contém o artigo. publication é sysname, sem padrão.

  • [ @article= ] 'article'
    É o nome do artigo. O nome deve ser exclusivo na publicação. article é sysname, sem padrão. article deve estar no computador local que executa o Microsoft SQL Server e deve estar em conformidade com as regras para identificadores.

  • [ @source_object= ] 'source_object'
    É o objeto de banco de dados a ser publicado. source_object é sysname, sem padrão. Para obter mais informações sobre os tipos de objetos que podem ser publicados usando replicação de mesclagem, veja Publicar dados e objetos de banco de dados.

  • [ @type= ] 'type'
    É o tipo de artigo. type is sysname, com um padrão de table e pode ter um dos valores a seguir.

    Valor

    Descrição

    tabela (padrão)

    Tabela com esquema e dados. A replicação monitora a tabela para determinar os dados a serem replicados.

    apenas esquema de função

    Função somente com esquema.

    somente esquema de exibição indexada

    Exibição indexada somente com esquema

    somente esquema proc

    Procedimento armazenado somente com esquema.

    synonym schema only

    Sinônimo somente com esquema).

    view schema only

    Exibição somente com esquema

  • [ @description= ] 'description'
    É uma descrição do artigo. description é nvarchar(255), com um padrão de NULL.

  • [ @column_tracking= ] 'column_tracking'
    É a configuração para acompanhamento do nível de coluna. column_tracking é nvarchar(10), com um padrão de FALSE. trueativa o controle de coluna. false ativa o controle de coluna e deixa a detecção de conflito no nível de linha. Se a tabela já tiver sido publicada em outras publicações de mesclagem, o controle da coluna deverá ser o mesmo que o valor usado por artigos existentes com base nessa tabela. Esse parâmetro só é específico a artigos de tabela.

    Dica

    Se o controle de linha for usado para detecção de conflitos (o padrão), a tabela de base poderá incluir no máximo 1.024 colunas, mas as colunas deverão ser filtradas do artigo de modo que seja publicado no máximo 246 colunas.Se o rastreamento de coluna for usado, a tabela base poderá incluir no máximo 246 colunas.

  • [ @status= ] 'status'
    É o status do artigo. status é nvarchar(10), com um padrão de unsynced. Se ativo, o script de processamento inicial para publicação da tabela será executado. Se unsynced, o script de processamento inicial para publicar a tabela é executado da próxima vez que o Snapshot Agent é executado.

  • [ @pre_creation_cmd= ] 'pre_creation_cmd'
    Especifica o que o sistema deve fazer se a tabela existe no assinante quando aplicar o instantâneo. pre_creation_cmd é nvarchar(10) e pode ser um dos valores a seguir.

    Valor

    Descrição

    nenhum

    Se a tabela já existir no Assinante, nenhuma ação será tomada.

    delete

    Emite uma exclusão com base na cláusula WHERE no filtro de subconjunto.

    descartar (padrão)

    Cancela a tabela antes de recriá-la. Exigido no suporte a Assinantes do Microsoft SQL Server Compact.

    truncate

    Trunca a tabela de destino.

  • [ @creation_script= ] 'creation_script'
    Corresponde ao caminho e ao nome de um script de esquema de artigo opcional usados para criar o artigo no banco de dados de assinatura. creation_script é nvarchar(255), com um padrão de NULL.

    Dica

    Scripts de criação em Assinantes SQL Server Compact não são executados

  • [ @schema_option= ] schema_option
    É um bitmap da opção de geração de esquema para o artigo determinado. schema_option é binary(8) e pode ser o produto | (Bitwise OR) de um ou mais desses valores.

    Valor

    Descrição

    0x00

    Desabilita execução de script pelo Snapshot Agent e usa o script de pré-criação de esquema fornecido definido em creation_script.

    0x01

    Gera a criação do objeto (CREATE TABLE, CREATE PROCEDURE, e assim por diante). Esse valor é o padrão para artigos de procedimento armazenado.

    0x10

    Gera um índice clusterizado correspondente. Mesmo se esta opção não estiver definida, os índices relacionados às chaves primárias e as restrições UNIQUE são geradas caso já estejam definidas em uma tabela publicada.

    0x20

    Converte UDTs (tipos de dados definidos pelo usuário) em tipos de dados base no Assinante. Essa opção não poderá ser usada quando houver uma restrição CHECK ou DEFAULT em uma coluna UDT, se uma coluna UDT for parte da chave primária ou se uma coluna computada fizer referência a uma coluna UDT.

    0x40

    Gera índices não clusterizados correspondentes. Mesmo se esta opção não estiver definida, os índices relacionados às chaves primárias e as restrições UNIQUE são geradas caso já estejam definidas em uma tabela publicada.

    0x80

    Replica restrições PRIMARY KEY. Qualquer índice relacionado à restrição é também replicado, mesmos e as opções 0x10 e 0x40 não estiverem habilitadas.

    0x100

    Replica gatilhos de usuário em um artigo de tabela, se definido.

    0x200

    Replica restrições FOREIGN KEY. Se a tabela referenciada não fizer parte de uma publicação, todas as restrições FOREIGN KEY em uma tabela publicada não serão replicadas.

    0x400

    Replica restrições CHECK.

    0x800

    Replica padrões.

    0x1000

    Replica agrupamento em nível de coluna.

    0x2000

    Replica propriedades estendidas associadas com o objeto de origem do artigo publicado.

    0x4000

    Replica restrições UNIQUE. Qualquer índice relacionado à restrição é também replicado, mesmos e as opções 0x10 e 0x40 não estiverem habilitadas.

    0x8000

    Esta opção não é válida para Editores que executam SQL Server 2005 ou versões posteriores.

    0x10000

    Replica instruções CHECK como NOT FOR REPLICATION para que as restrições não sejam forçadas durante a sincronização.

    0x20000

    Replica instruções FOREIGN KEY como NOT FOR REPLICATION para que as restrições não sejam forçadas durante a sincronização.

    0x40000

    Replica grupos de arquivos associados a uma tabela ou índice particionado.

    0x80000

    Replica o esquema de partição para uma tabela particionada.

    0x100000

    Replica o esquema de partição para um índice particionado.

    0x200000

    Replica estatísticas de tabela.

    0x400000

    Replica associações padrão.

    0x800000

    Replica associações de regra.

    0x1000000

    Replica índice de texto completo.

    0x2000000

    Coleções de esquema CXML associadas a colunas xml não são replicadas.

    0x4000000

    Replica índices em colunas xml.

    0x8000000

    Cria esquemas ainda não presentes no assinante.

    0x10000000

    Converte colunas xml em ntext no Assinante.

    0x20000000

    Converte tipos de dados de objeto grande (nvarchar(max), varchar(max) e varbinary(max)) introduzidos no SQL Server 2005 em tipos de dados com suporte no SQL Server 2000.

    0x40000000

    Replica permissões.

    0x80000000

    Tenta descartar dependências de qualquer objeto que não faz parte da publicação.

    0x100000000

    Use essa opção para replicar o atributo FILESTREAM, se ele for especificado em colunas varbinary(max). Não especifique essa opção se você estiver replicando tabelas para Assinantes SQL Server 2005. A replicação de tabelas com colunas FILESTREAM para Assinantes do SQL Server 2000 não tem suporte, independentemente de como essa opção de esquema é definida. Consulte a opção relacionada 0x800000000.

    0x200000000

    Converte tipos de dados de data e hora (date, time, datetimeoffset e datetime2) que foram introduzidos no SQL Server 2008 em tipos de dados com suporte nas versões anteriores do SQL Server.

    0x400000000

    Replica a opção de compactação para dados e índices. Para obter mais informações, consulte Compactação de dados.

    0x800000000

    Defina essa opção para armazenar dados FILESTREAM em seu próprio grupo de arquivos no Assinante. Se essa opção não for definida, os dados FILESTREAM serão armazenados no grupo de arquivos padrão. A replicação não cria grupos de arquivos; portanto, se você definir essa opção, deverá criar o grupo de arquivos antes de aplicar o instantâneo no Assinante. Para obter mais informações sobre como criar objetos antes de aplicar o instantâneo, consulte Executar scripts antes e depois da aplicação do instantâneo.

    Consulte a opção relacionada 0x100000000.

    0x1000000000

    Converte UDTs (tipos definidos pelo usuário) de CLR (Common Language Runtime) em varbinary(max) para que as colunas do tipo UDT possam ser replicadas para os Assinantes em execução no SQL Server 2005.

    0x2000000000

    Converte o tipo de dados hierarchyid em varbinary(max) para que colunas do tipo hierarchyid possam ser replicadas para os Assinantes em execução no SQL Server 2005. Para obter mais informações sobre como usar colunas hierarchyid em tabelas replicadas, consulte hierarchyid (Transact-SQL).

    0x4000000000

    Replica qualquer índice filtrado na tabela. Para obter mais informações sobre índices filtrados, consulte Criar índices filtrados.

    0x8000000000

    Converte tipo de dados geography e geometry para que colunas do tipo varbinary(max) possam ser replicadas para os Assinantes em execução no SQL Server 2005.

    0x10000000000

    Replica índices em colunas do tipo geography e geometry.

    Se este valor for NULO, o sistema gera automaticamente uma opção de esquema válida para o artigo. A tabela Opção de Esquema Padrão na seção Observações mostra o valor escolhido com base no tipo de artigo. Também, nem todos os schema_option são válidos para cada tipo de replicação e tipo de artigo. A tabela Opção de Esquema Válido fornecida nas Observações mostra as opções que são especificadas para um determinado tipo de artigo.

    Dica

    O parâmetro schema_option só afeta opções de replicação para o instantâneo inicial.Quando o Snapshot Agent tiver gerado o esquema inicial e tiver aplicado o mesmo no Assinante, a replicação do esquema de publicação é alterada para Assinante que ocorreu com base nas regras de replicação das alterações de esquema e na configuração de parâmetro replicate_ddl especificadas em sp_addmergepublication.Para obter mais informações, consulte Fazer alterações de esquema em bancos de dados de publicação.

  • [ @subset_filterclause= ] 'subset_filterclause'
    Há uma cláusula WHERE especificando a filtragem horizontal de um artigo de tabela sem ter a palavra WHERE incluída. subset_filterclause é de nvarchar(1000), com um padrão de uma cadeia de caracteres vazia.

    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 filtragem e substituir o valor HOST_NAME, talvez seja necessário converter tipos de dados por meio de CONVERT.Para obter mais informações sobre práticas recomendadas para esse caso, consulte a seção "Substituindo o valor HOST_NAME ()" em Filtros de linha com parâmetros.

  • [ @article_resolver= ] 'article_resolver'
    O resolvedor baseado em COM é usado para resolver conflitos no artigo da tabela ou o assembly do .NET Framework é chamado para executar a lógica de negócios personalizada no artigo de tabela. article_resolver é varchar(255), com um padrão de NULL. São listados valores disponíveis para este parâmetro em Microsoft Resolvedores Personalizados. Se o valor fornecido não for um dos Microsoft resolvedores, o SQL Server usa o resolvedor especificado ao invés do resolvedor fornecido pelo sistema. Use sp_enumcustomresolvers para enumerar a lista de determinadores personalizados disponíveis. Para obter mais informações, consulte Executar lógica de negócios durante sincronizações de mesclagem e Detecção e resolução de conflito de replicação de mesclagem avançada.

  • [ @resolver_info= ] 'resolver_info'
    É usado para especificar informações adicionais requeridas por um determinador personalizado. Alguns resolvedores do Microsoft necessitam de uma coluna fornecida como entrada para o resolvedor. resolver_info é nvarchar(255), com um padrão de NULL. Para obter mais informações, consulte Resolvedores Microsoft baseados em COM.

  • [ @source_owner= ] 'source_owner'
    É o nome do proprietário de source_object. source_owner é sysname, com um padrão de NULL. Se NULO, presume-se que o usuário atual seja o proprietário.

  • [ @destination_owner= ] 'destination_owner'
    É o proprietário do objeto no banco de dados de assinatura, se não for 'dbo'. destination_owner é sysname, com um padrão de NULL. Se NULo, presume-se que o 'dbo' é o proprietário.

  • [ @vertical_partition= ] 'column_filter'
    Habilita e desabilita a filtragem de coluna em um artigo de tabela. vertical_partition é nvarchar(5), com um padrão de FALSE.

    false indica que não há uma filtragem vertical e publica todas as colunas.

    true desmarca todas as colunas exceto as chave declarara como primária e as colunas ROWGUID. Colunas são adicionadas usando sp_mergearticlecolumn.

  • [ @auto_identity_range= ] 'automatic_identity_range'
    Habilita e desabilita o intervalo de identidade automática desse artigo de tabela em uma publicação no momento em que ela é criada. auto_identity_range é nvarchar(5), com um padrão de FALSE. true permite a manipulação de intervalo de identidade automática, enquanto false a desabilita.

    Dica

    auto_identity_range foi substituído e fornecido apenas para compatibilidade com versões anteriores.Você deve usar identityrangemanagementoption para especificar as opções de gerenciamento do intervalo de identidades.Para obter mais informações, consulte Replicar colunas de identidade.

  • [ @pub_identity_range= ] pub_identity_range
    Controla o tamanho do intervalo de identidades alocado a um Assinante com assinatura de servidor quando o gerenciamento automático do intervalo de identidades for usado. Esse intervalo de identidade é reservado para um Assinante de republicação para ser alocado a seus próprios Assinantes. pub_identity_range é bigint, com um padrão de NULL. Você deve especificar este parâmetro se identityrangemanagementoption for auto ou se auto_identity_range for true.

  • [ @identity_range= ] identity_range
    Controla o tamanho do intervalo de identidades alocado ao Publicador e ao Assinante quando o gerenciamento automático do intervalo é usado. identity_range é bigint, com um padrão de NULL. Você deve especificar este parâmetro se identityrangemanagementoption for auto ou se auto_identity_range for true.

    Dica

    O identity_range controla o tamanho do intervalo de identidades nos Assinantes de republicação que usam versões anteriores do SQL Server.

  • [ @threshold= ] threshold
    Valor de porcentagem que controla quando o Merge Agent atribui um novo intervalo de identidade. Quando a porcentagem de valores especificada em threshold é usada, o Agente de Mesclagem cria um novo intervalo de identidade. threshold é int, com um padrão de NULL. Você deve especificar este parâmetro se identityrangemanagementoption for auto ou se auto_identity_range for true.

  • [ @verify_resolver_signature= ] verify_resolver_signature
    Especifica se uma assinatura digital é verificada antes de usar um resolvedor em replicação de mesclagem. verify_resolver_signature é int, com um padrão de 1.

    0 especifica que a assinatura não será verificada.

    1 especifica que a assinatura será verificada para consultar se for de uma origem de confiança.

  • [ @destination_object= ] 'destination_object'
    É o nome do objeto criado no banco de dados de assinatura. destination_object is sysname, com um valor padrão do que está em @source_object. Este parâmetro é especificado somente se o artigo for um artigo apenas de esquema, como procedimentos armazenados, exibições e UDFs. Se o artigo especificado for um artigo de tabela, o valor em @source\_object anulará o valor em destination_object.

  • [ @allow_interactive_resolver= ] 'allow_interactive_resolver'
    Habilita ou desabilita o uso do Resolvedor Interativo de um artigo. allow_interactive_resolver é nvarchar(5), com um padrão de FALSE. true habilita o uso do Resolvedor Interativo no artigo; false o desabilita.

    Dica

    O Resolvedor Interativo não tem o suporte dos Assinantes SQL Server Compact.

  • [ @fast_multicol_updateproc= ] 'fast_multicol_updateproc'
    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts.

  • [ @check_permissions= ] check_permissions
    É um bitmap das permissões do nível de tabela que são verificadas quando o Merge Agent aplica alterações ao Editor. Se o logon/conta de usuário do Publicador usado pelo processo de mesclagem não possuir as permissões corretas de tabela, as alterações inválidas serão registradas como conflitos. check_permissions é int e pode ser o produto | (Bitwise OR) de um ou dos valores a seguir.

    Valor

    Descrição

    0x00 (padrão)

    As permissões não são verificadas.

    0x10

    Verifica as permissões no Editor antes que as operações de inserção realizadas em um Assinante possam ser carregadas.

    0x20

    Verifica as permissões no Editor antes que as operações de atualização realizadas em um Assinante possam ser carregadas.

    0x40

    Verifica as permissões no Editor antes que as operações de atualização realizadas em um Assinante possam ser carregadas.

  • [ @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 é um bit, com um padrão de 0.

    0 especifica que a adição de um artigo 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 adicionar um artigo pode invalidar o instantâneo e, se houver assinaturas existentes que exigem um novo instantâneo, dará permissão para que o instantâneo existente seja marcado como obsoleto e um novo instantâneo seja gerado. force_invalidate_snapshot é definido como 1 ao adicionar um artigo a uma publicação com um instantâneo existente.

  • [ @published_in_tran_pub= ] 'published_in_tran_pub'
    Indica que um artigo em uma publicação de mesclagem também é publicado em uma publicação transacional. published_in_tran_pub é nvarchar(5), com um padrão de FALSE. true especifica que o artigo em uma publicação de mesclagem também é publicado em uma publicação transacional.

  • [ @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 é um bit, com um padrão de 0.

    0 especifica que o a adição de um artigo não causa a reinicialização da assinatura. Se o procedimento armazenado detectar que a alteração irá requerer assinaturas existentes para ser reiniciada, ocorrerá um erro e nenhuma alteração será feita.

    1 significa que alterações no artigo de mesclagem fazem com que as assinaturas existentes sejam reinicializadas e dá permissão para que a reinicialização ocorra. force_reinit_subscription é definido como 1 quando subset_filterclause especifica um filtro de linha parametrizado.

  • [ @logical_record_level_conflict_detection= ] 'logical_record_level_conflict_detection'
    Especifica o nível de detecção de conflito para um artigo que é um membro de um registro lógico. logical_record_level_conflict_detection é nvarchar(5), com um padrão de FALSE.

    true especifica que um conflito será detectado se alterações forem feitas em um lugar no registro lógico.

    false especifica que a detecção de conflito padrão é usada conforme especificado por column_tracking. Para obter mais informações, consulte Agrupar alterações a linhas relacionadas com registros lógicos.

    Dica

    Como os registros lógicos não têm suporte dos Assinantes SQL Server Compact, será necessário especificar um valor de false para que logical_record_level_conflict_detection ofereça suporte a esses Assinantes.

  • [ @logical_record_level_conflict_resolution= ] 'logical_record_level_conflict_resolution'
    Especifica o nível de resolução de conflito para um artigo que é um membro de um registro lógico. logical_record_level_conflict_resolution é nvarchar(5), com um padrão de FALSE.

    true especifica que todo o registro lógico vencedor substituirá o registro lógico perdedor.

    false especifica que as linhas vencedoras não são restritas ao registro lógico. Se logical_record_level_conflict_detection for true, então logical_record_level_conflict_resolution também deverá ser definido como true. Para obter mais informações, consulte Agrupar alterações a linhas relacionadas com registros lógicos.

    Dica

    Como os registros lógicos não têm suporte dos Assinantes SQL Server Compact, será necessário especificar um valor de false para que logical_record_level_conflict_resolution ofereça suporte a esses Assinantes.

  • [ @partition_options= ] partition_options
    Define a forma pela qual os dados no artigo são particionados, o que habilita otimizações de desempenho quando todas as linhas pertencem a apenas uma partição ou assinatura. partition_options é tinyint, e pode ter um dos valores a seguir.

    Valor

    Descrição

    0 (padrão)

    A filtragem para o artigo ou é estática ou não gera um único subconjunto de dados para cada partição, ou seja, uma partição "sobreposta".

    1

    As partições são sobrepostas e as atualizações de linguagem de manipulação de dados (DML) feitas ao Assinante não podem alterar a partição à qual uma linha pertence.

    2

    A filtragem do artigo gera partições não sobrepostas, mas vários Assinantes podem receber a mesma partição.

    3

    A filtragem para o artigo gera partições não sobrepostas exclusivas de cada assinatura.

    Dica

    Se a tabela de origem de um artigo já estiver publicada em outra publicação, então o valor partition_options deverá ser o mesmo para os dois artigos.

  • [ @processing_order= ] processing_order
    Indica a ordem de processamento de artigos em uma publicação de mesclagem. processing_order é int, com um padrão de 0. 0 especifica que o artigo não está ordenado, e qualquer outro valor representa o valor ordinal da ordem de processamento para este artigo. Os artigos são processados em ordem crescente de valores. Se dois artigos tiver o mesmo valor, a ordem de processamento será definida pela ordem do nome fantasia do artigo na tabela do sistema sysmergearticles. Para obter mais informações, consulte Especificar a ordem de processamento dos artigos de mesclagem.

  • [ @subscriber_upload_options= ] subscriber_upload_options
    Define restrições em atualizações realizadas em um Assinante com uma assinatura de cliente. Para obter mais informações, consulte Otimizar o desempenho de replicação de mesclagem com artigos de somente download. subscriber_upload_options é tinyint e pode ser um dos valores a seguir.

    Valor

    Descrição

    0 (padrão)

    Sem restrições. As alterações feitas no Assinante são carregadas no Publicador.

    1

    As alterações são permitidas no Assinante, mas não são carregadas no Publicador.

    2

    As alterações não são permitidas no Assinante.

    Alterar subscriber_upload_options exige que a assinatura seja reinicializada chamando sp_reinitmergepullsubscription (Transact-SQL).

    Dica

    Se a tabela de origem de um artigo já estiver publicada em outra publicação, o valor subscriber_upload_options deverá ser o mesmo para os dois artigos.

  • [ @identityrangemanagementoption= ] identityrangemanagementoption
    Especifica como o gerenciamento de intervalo de identidade é tratado para o artigo. identityrangemanagementoption é nvarchar(10) e pode ser um dos valores a seguir.

    Valor

    Descrição

    nenhum

    Desabilita o gerenciamento de intervalo de identidade.

    manual

    Marca a coluna de identidade usando NOT FOR REPLICATION para ativar tratamento de intervalo de identidade manual.

    auto

    Especifica o gerenciamento automático de intervalos de identidade.

    NULO (padrão)

    Usa como padrão quando noneo valor de auto_identity_range não for true.

    Para compatibilidade com versões anteriores, quando o valor de identityrangemanagementoption for NULO, o valor de auto_identity_range é verificado. Porém, quando o valor de identityrangemanagementoption não for NULO, então o valor de auto_identity_range é ignorado. Para obter mais informações, consulte Replicar colunas de identidade.

  • [ @delete_tracking= ] 'delete_tracking'
    Indica se as exclusões são replicadas. delete_tracking é nvarchar(5), com um padrão de TRUE. false indica que exclusões não são replicadas e true indica que as exclusões são replicadas, o que for o comportamento comum para a replicação de mesclagem. Quando o valor delete_tracking é definido como false, linhas excluídas no Assinante devem ser removidas manualmente no Publicador, e linhas excluídas no Publicador devem ser removidas manualmente no Assinante.

    Importante

    Definindo delete_tracking como false resulta em non-convergência.Se a tabela de origem de um artigo já estiver publicada em outra publicação, então o valor delete_tracking deverá ser o mesmo para os dois artigos.

    Dica

    Opções delete_tracking que usam o Novo Assistente de Publicação ou a caixa de diálogo Propriedades da Publicação não podem ser definidas.

  • [ @compensate_for_errors= ] 'compensate_for_errors'
    Indica se ações de compensação são executadas quando são encontrados erros durante a sincronização. compensate_for_errors ié nvarchar(5), com um padrão de FALSE. Quando definido como true, as alterações que não podem ser aplicadas a um Assinante ou Publicador durante sincronização sempre levam a ações de compensação para desfazer a alteração; no entanto, um Assinante configurado incorretamente que gera um erro pode fazer com que alterações em outros Assinantes e Publicadores sejam desfeitas. false desabilita essas ações de compensação, no entanto, os erros ainda são registrados assim como ocorre com a compensação e as mesclagens subsequentes continuam tentando aplicar as alterações até serem bem-sucedidas.

    Importante

    Embora os dados nas linhas afetadas pareçam estar fora de convergência, assim que você resolver qualquer erro, as alterações poderão ser aplicadas e os dados convergidos.Se a tabela de origem de um artigo já estiver publicada em outra publicação, então o valor compensate_for_errors deverá ser o mesmo para os dois artigos.

  • [ @stream_blob_columns= ] 'stream_blob_columns'
    Especifica se uma otimização de fluxo de dados é usada ao replicar colunas de objeto binário grande. stream_blob_columns é nvarchar(5), com um padrão de FALSE. true significa que haverá tentativa de otimização. stream_blob_columns será definido como true quando FILESTREAM estiver habilitado. Isso permite a replicação de dados FILESTREAM para executar da maneira ideal e reduzir a utilização de memória. Para forçar os artigos de tabela FILESTREAM a não usarem o fluxo de blob, use sp_changemergearticle para definir stream_blob_columns como false.

    Importante

    A habilitação dessa otimização de memória pode reduzir o desempenho do Agente de Mesclagem durante a sincronização.Esta opção só deve ser usada ao replicar colunas que contêm megabytes de dados.

    Dica

    Certas funcionalidades de replicação de mesclagem, como registros lógicos, ainda podem impedir que a otimização de fluxo seja usada quando replicar objetos grandes binários mesmo com stream_blob_columns definido como true.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addmergearticle é usado em replicação de mesclagem.

Quando você publicar objetos, suas definições são copiadas aos Assinantes. Se você estiver publicando um objeto de banco de dados que depende de outros objetos, precisará publicar todos os objetos referenciados. Por exemplo, se você publicar uma exibição que depende de uma tabela, terá de publicar a tabela também.

Se você especificar um valor de 3 para partition_options, poderá haver apenas uma única assinatura para cada partição de dados naquele artigo. Se uma segunda assinatura for criada na qual o critério de filtragem da nova assinatura for resolvido para a mesma partição como a assinatura existente, a assinatura existente será cancelada.

Ao especificar um valor 3 para partition_options, os metadados são limpos sempre que o Merge Agent é executado e os instantâneos particionados expiram mais rapidamente. Ao usar essa opção, considere habilitar o instantâneo particionado solicitado pelo assinante. Para obter mais informações, consulte Instantâneos para publicações de mesclagem com filtros com parâmetros.

Adicionando um artigo com um filtro estático horizontal, usando subset_filterclause, a uma publicação existente com artigos que têm filtros parametrizados, requer que as assinaturas sejam reinicializadas.

Ao especificar processing_order, recomendamos deixar intervalos entre os valores da ordem do artigo, o que tornará mais fácil a definição de novos valores no futuro. Por exemplo, se tiver três artigos Artigo1, Artigo2, e Artigo3, processing_order definidos como 10, 20, e 30, ao invés de 1, 2, e 3. Para obter mais informações, consulte Especificar a ordem de processamento dos artigos de mesclagem.

Tabela de opção de esquema padrão

Esta tabela descreve o valor padrão definido pelo procedimento armazenado se um valor NULO for especificado para schema_option, que depende do tipo de artigo.

Tipo de artigo

Valor de opção de esquema

func schema only

0x01

indexed view schema only

0x01

proc schema only

0x01

table

  • 0x0C034FD1 - SQL Server 2005 e publicações compatíveis posteriores com um instantâneo de modo nativo.

  • 0x08034FF1 - SQL Server 2005 e publicações compatíveis posteriores com um instantâneo de modo de caractere.

view schema only

0x01

Dica

Se a publicação suportar versões anteriores do SQL Server, a opção de esquema padrão para a tabela será 0x30034FF1.

Tabela de opção de esquema válida

A tabela a seguir descreve os valores permitidos de schema_option, dependendo do tipo de artigo.

Tipo de artigo

Valores de opção de esquema

func schema only

0x01 e 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 e 0x200000

proc schema only

0x01 e 0x2000

table

Todas as opções.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 e 0x200000

Exemplo

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Permissões

Requer associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner.

Consulte também

Referência

sp_changemergearticle (Transact-SQL)

sp_dropmergearticle (Transact-SQL)

sp_helpmergearticle (Transact-SQL)

Procedimentos armazenados de replicação (Transact-SQL)

Conceitos

Defina um Artigo

Publicar dados e objetos de banco de dados

Replicar colunas de identidade