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

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

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

Por padrão, a replicação transacional propaga alterações para os Assinantes usando um conjunto de procedimentos armazenados para cada um dos artigos. É possível substituir esses procedimentos por procedimentos personalizados. Para obter mais informações, consulte Especificar como as alterações são propagadas para artigos transacionais.

Limitações e restrições

  • É preciso tomar cuidado ao editar qualquer um dos arquivos de instantâneo gerados pela replicação. Teste e ofereça suporte à lógica personalizada nos procedimentos armazenados personalizados. A Microsoft não dá suporte à 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 as propriedades da 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 – <Publicação>, selecione uma tabela e depois Propriedades do Artigo.

  2. Selecione Definir propriedades do artigo de tabela selecionado.

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

  4. Selecione OK.

  5. Se você estiver na caixa de diálogo Propriedades da Publicação – <Publicação>, selecione 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 – <Publicação>, selecione uma tabela e depois Propriedades do Artigo.

  2. Selecione Definir propriedades do artigo de tabela selecionado.

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

  3. Selecione OK.

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

  5. Quando o instantâneo da publicação for gerado, ele incluirá o procedimento que você especificou na etapa anterior. Os procedimentos usarão a sintaxe CALL especificada, mas incluirão a lógica padrão utilizada pela 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 este arquivo usando o Bloco de Notas ou outro editor de texto, localize o CREATE PROCEDURE comando 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 o instantâneo for regenerado, será preciso recriar o procedimento personalizado.

Usando o Transact-SQL

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 Especificar 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

  1. No banco de dados de publicação do Publicador, 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_objecte um valor de SQL para pelo menos um dos seguintes parâmetros:

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

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

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

    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 alterações de dados

  1. No banco de dados de publicação do Publicador, 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_objecte um valor de NONE para pelo menos um dos seguintes parâmetros:

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

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

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

    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 Define an Article.

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

  1. No banco de dados de publicação do Publicador, 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, em que article_name é o valor especificado para @article.

    • @del_cmd – especifica um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, em que 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, em que 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 a sintaxe de CALL, SCALL, XCALL e MCALL, consulte Especificar como as alterações são propagadas para artigos transacionais.

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

  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 CREATE PROCEDURE comando para os procedimentos armazenados de inserção, atualização ou exclusão e edite a definição do 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 script personalizado nos procedimentos armazenados personalizados para propagar alterações de dados

  1. No banco de dados de publicação do Publicador, 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, em que article_name é o valor especificado para @article.

    • @del_cmd – especifica um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, em que 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, em que 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 a sintaxe de CALL, SCALL, XCALL e MCALL, consulte Especificar como as alterações são propagadas para artigos transacionais.

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

  2. No Publicador, no banco de dados de publicação, use a instrução ALTER PROCEDURE para editar sp_scriptpublicationcustomprocs de modo que ela retorne um script CREATE PROCEDURE para os procedimentos armazenados personalizados de inserção, atualização e exclusão. Para obter mais informações, consulte Especificar como as alterações são propagadas para artigos transacionais.

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_cmdou del_cmd para @propertye o método de propagação apropriado para @value.

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