Compartilhar via


Como definir o método de propagação para alterações de dados para artigos transacionais (Programação Transact-SQL de replicação)

Por padrão, a replicação gera automaticamente os procedimentos armazenados usados para propagar alterações a Assinantes. A replicação transacional permite que você controle como as alterações são propagadas do Publicador para os Assinantes, e esse método de propagação pode ser definido programaticamente quando um artigo é criado e posteriormente alterado usando procedimentos armazenados de replicação.

ObservaçãoObservação

Você pode especificar um método de propagação diferente para cada tipo de operação DML (linguagem de manipulação de dados) - inserir, atualizar ou deletar - que ocorra em uma linha de um dado publicado.

Para obter mais informações, consulte Especificando como as alterações são propagadas para Artigos Transacionais.

Para criar um artigo que use comandos Transact-SQL para propagar alterações de dados

  • No Publicador do banco de dados de publicação, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto de banco de dados a ser publicado para @source_object e um valor de SQL para pelo menos um dos seguintes parâmetros:

    • @ins_cmd - controla a replicação dos comandos INSERT.

    • @upd_cmd - controla a replicação dos comandos UPDATE.

    • @del_cmd - controla a replicação dos comandos DELETE.

    ObservaçãoObservação

    Ao especificar um valor de SQL para qualquer um dos parâmetros acima, os comandos desse tipo serão replicados para o Assinante como o comando Transact-SQL apropriado.

    Para obter mais informações, consulte Como definir um artigo (Programação Transact-SQL de replicação).

Para criar um artigo que não propague alterações de dados

  • No Publicador do banco de dados de publicação, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto de banco de dados a ser publicado para @source_object e um valor de NONE para pelo menos um dos seguintes parâmetros:

    • @ins_cmd - controla a replicação dos comandos INSERT.

    • @upd_cmd - controla a replicação dos comandos UPDATE.

    • @del_cmd - controla a replicação dos comandos DELETE.

    ObservaçãoObservação

    Ao especificar um valor de NONE para qualquer um dos parâmetros acima, os comandos desse tipo não serão replicados para o Assinante.

    Para obter mais informações, consulte Como definir um artigo (Programação Transact-SQL de replicação).

Para criar um artigo com procedimentos armazenados personalizados modificados pelo usuário

  1. No Publicador do banco de dados de publicação, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto de banco de dados a ser publicado para @source_object, um valor para o bitmask @schema_option que contém o valor 0x02 (habilita geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:

    • @ins_cmd - especifica um valor de CALL sp_MSins_article_name, onde article_name é o valor especificado para @article.

    • @del_cmd - especifica um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, onde article_name é o valor especificado para @article.

    • @upd_cmd - especifica um valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name ou MCALL sp_MSupd_article_name, onde article_name é o valor especificado para @article.

    ObservaçãoObservação

    Para cada um dos parâmetros de comando acima, você pode especificar seu próprio nome para os procedimentos armazenados que a replicação gera.

    ObservaçãoObservação

    Para obter mais informações sobre sintaxe CALL, SCALL, XCALL e MCALL, consulte Especificando como as alterações são propagadas para Artigos Transacionais.

    Para obter mais informações, consulte Como definir um artigo (Programação Transact-SQL de replicação).

  2. Após a geração do instantâneo, vá até a pasta do instantâneo da publicação à qual esse artigo pertence e localize o arquivo .sch com nome idêntico ao do artigo. Abra esse arquivo usando Notepad.exe, localize o comando CREATE PROCEDURE para os procedimentos armazenados de inserir, atualizar ou excluir, e edite a definição do procedimento para fornecer as lógicas de personalização para a propagação das alterações de dados. Para obter mais informações, consulte Especificando como as alterações são propagadas para Artigos Transacionais.

    Observação sobre cuidadosCuidado

    É preciso tomar cuidado ao editar qualquer um dos arquivos de instantâneo gerados pela replicação. Você deve testar e oferecer suporte à lógica personalizada nos procedimentos armazenados personalizados; o Microsoft não oferece suporte a lógica personalizada.

Para criar um artigo com script personalizado nos procedimentos armazenados personalizados para propagar alterações de dados

  1. No Publicador do banco de dados de publicação, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto de banco de dados a ser publicado para @source_object, um valor para o bitmask @schema_option que contém o valor 0x02 (habilita geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:

    • @ins_cmd - especifica um valor de CALL sp_MSins_article_name, onde article_name é o valor especificado para @article.

    • @del_cmd - especifica um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, onde article_name é o valor especificado para @article.

    • @upd_cmd - especifica um valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALL sp_MSupd_article_name, onde article_name é o valor especificado para @article.

    ObservaçãoObservação

    Para cada um dos parâmetros de comando acima, você pode especificar seu próprio nome para os procedimentos armazenados que a replicação gera.

    ObservaçãoObservação

    Para obter mais informações sobre sintaxe CALL, SCALL, XCALL e MCALL, consulte Especificando como as alterações são propagadas para Artigos Transacionais.

    Para obter mais informações, consulte Como definir um artigo (Programação Transact-SQL de replicação).

  2. No Publicador do banco de dados de publicação, use a instrução ALTER PROCEDURE para editar sp_scriptpublicationcustomprocs de maneira que retorne um script CREATE PROCEDURE para os procedimentos armazenados personalizados de inserir, atualizar e deletar. Para obter mais informações, consulte Especificando como as alterações são propagadas para Artigos Transacionais.

    Observação sobre cuidadosCuidado

    É preciso tomar cuidado ao editar sp_scriptpublicationcustomprocs; você deve testar e oferecer suporte à lógica personalizada neste procedimento armazenado. O Microsoft não oferece suporte para lógica personalizada ou para alterações dos procedimentos armazenados do sistema.

Para alterar o método de propagar alterações para um artigo existente

  1. No Publicador do banco de dados de publicação, execute sp_changearticle. Especifique @publication, @article, um valor de ins_cmd, upd_cmd ou del_cmd para @property e o método de propagação apropriado para @value.

  2. Repita a etapa 1 para cada método de propagação a ser alterado.