Partilhar via


Definir o método de propagação para alterações de dados em artigos transacionais

Este tópico descreve como definir o método de propagação para alterações de dados em artigos transacionais no SQL Server 2014 usando o SQL Server Management Studio ou o Transact-SQL.

Por padrão, a replicação transacional propaga alterações para Assinantes usando um conjunto de procedimentos armazenados para cada artigo. Você pode substituir esses procedimentos por procedimentos personalizados. Para obter mais informações, consulte Especificar como as alterações são propagadas para artigos transacionais.

Nesse Tópico

  • Antes de começar:

    limitações e restrições

  • Para definir o método de propagação para alterações de dados em artigos transacionais, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de começar

Limitações e restrições

  • É necessário ter cuidado ao editar qualquer um dos arquivos de instantâneo gerados pela replicação. Você deve testar e dar suporte à lógica customizada nos procedimentos armazenados específicos. A Microsoft não oferece suporte para lógica personalizada.

Como usar o SQL Server Management Studio.

Especifique o método de propagação na guia Propriedades da caixa de diálogo Propriedades do Artigo – <Artigo>, que está disponível no Assistente para Nova Publicação e na caixa de diálogo Propriedades da Publicação – <Publicação>. Para obter mais informações sobre como usar o assistente e acessar a caixa de diálogo, consulte Criar uma publicação e exibir e modificar propriedades de publicação.

Para especificar o método de propagação

  1. Na página Artigos do Assistente para Nova Publicação ou na caixa de diálogo Propriedades da Publicação – <Publicação> , selecione uma tabela e clique em Propriedades do Artigo.

  2. Clique em Definir Propriedades do Artigo da Tabela Realçada.

  3. Na guia Propriedades da caixa de diálogo Propriedades do Artigo – <Artigo>, na seção Entrega de Instruções, especifique o método de propagação para cada operação usando os menús de formato de entrega INSERT, formato de entrega UPDATE e formato de entrega DELETE.

  4. Clique em OK.

  5. Se você estiver na caixa de diálogo Propriedades da Publicação – <Publicação> , clique em OK para salvar e fechar a caixa de diálogo.

Para gerar e usar procedimentos armazenados personalizados

  1. Na página Artigos do Assistente para Nova Publicação ou na caixa de diálogo Propriedades da Publicação – <Publicação> , selecione uma tabela e clique em Propriedades do Artigo.

  2. Clique em Definir Propriedades do Artigo da Tabela Realçada.

    Na guia Propriedades da caixa de diálogo Propriedades do Artigo – <Artigo>, na seção Entrega de Instruções, selecione a sintaxe CALL no menu de formato de entrega apropriado (formato de entrega INSERT, formato de entrega UPDATE ou formato de entrega DELETE) e digite o nome do procedimento a ser usado no procedimento armazenado INSERT, DELETE ou UPDATE. Para obter mais informações sobre a sintaxe CALL, consulte a seção "Sintaxe de chamada para procedimentos armazenados" em Especificar como as alterações são propagadas para artigos transacionais.

  3. Clique em OK.

  4. Se você estiver na caixa de diálogo Propriedades da Publicação – <Publicação> , clique em OK para salvar e fechar a caixa de diálogo.

  5. Quando o instantâneo da publicação for gerado, ele incluirá o procedimento especificado na etapa anterior. Os procedimentos usarão a sintaxe CALL especificada, mas incluirão a lógica padrão usada pela replicação.

    Depois que o instantâneo tiver sido gerado, navegue até a pasta de instantâneo da publicação à qual este artigo pertence e localize o arquivo .sch com o mesmo nome do artigo. Abra este arquivo usando o Bloco de Notas ou outro editor de texto, localize o comando CREATE PROCEDURE para os procedimentos armazenados de inserção, atualização ou exclusão e edite a definição de procedimento para fornecer qualquer lógica personalizada para propagar alterações de dados. Se a imagem for regenerada, você deverá recriar o procedimento personalizado.

Usando Transact-SQL

A replicação transacional permite controlar 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 alterado posteriormente 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 excluir) que ocorre em uma linha de dados publicados.

Para obter mais informações, consulte Especificar como as alterações são propagadas para artigos transacionais.

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

  1. No Publicador da base 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 que está sendo publicado para @source_object e um valor de SQL para pelo menos um dos seguintes parâmetros:

    • @ins_cmd – controla a replicação de comandos INSERT .

    • @upd_cmd – controla a replicação de comandos UPDATE .

    • @del_cmd – controla a replicação de 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 Define an Article.

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

  1. No Publicador da base 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 que está sendo publicado para @source_object e um valor NONE para pelo menos um dos seguintes parâmetros:

    • @ins_cmd – controla a replicação de comandos INSERT .

    • @upd_cmd – controla a replicação de comandos UPDATE .

    • @del_cmd – controla a replicação de comandos DELETE .

    Observação

    Ao especificar um valor 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 Define an Article.

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

  1. No Publicador da base 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 que está sendo publicado para @source_object, um valor para a máscara de bits @schema_option que contém o valor 0x02 (habilita a geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:

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

    • @del_cmd - especifique um valor como CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, onde article_name é o valor especificado para _*@article**.

    • @upd_cmd - especifique 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 gerados pela replicação.

    Observação

    Para obter mais informações sobre a sintaxe CALL, SCALL, XCALL e MCALL, consulte Especifique como as alterações são propagadas para artigos transacionais.

    Para obter mais informações, consulte Define an Article.

  2. Depois que o instantâneo tiver sido gerado, navegue até a pasta de instantâneo da publicação à qual este artigo pertence e localize o arquivo .sch com o mesmo nome do artigo. Abra esse arquivo usando Notepad.exe, localize o comando CREATE PROCEDURE para os procedimentos armazenados de inserção, atualização ou exclusão e edite a definição de procedimento para fornecer qualquer lógica personalizada para propagar alterações de dados. Para obter mais informações, consulte Especificar como as alterações são propagadas para artigos transacionais.

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

  1. No Publicador da base 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 que está sendo publicado para @source_object, um valor para a máscara de bits @schema_option que contém o valor 0x02 (habilita a geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:

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

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

    • @upd_cmd - especifique 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 gerados pela replicação.

    Observação

    Para obter mais informações sobre a sintaxe CALL, SCALL, XCALL e MCALL, consulte Especifique como as alterações são propagadas para artigos transacionais.

    Para obter mais informações, consulte Define an Article.

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

Para alterar o método de propagação de 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.

Consulte Também

Especifique como as alterações são propagadas nos artigos transacionais
Criar uma publicação