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çã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çã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çã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
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çã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çã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).
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.
Cuidado É 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
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çã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çã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).
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.
Cuidado É 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
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.
Repita a etapa 1 para cada método de propagação a ser alterado.