Compartilhar via


Regenerar procedimentos transacionais personalizados para refletir alterações de esquema

Por padrão, a replicação transacional faz todas as alterações de dados nos Assinantes por meio de procedimentos armazenados gerados por procedimentos internos para cada artigo de tabela na publicação. Os três procedimentos (um para inserções, atualizações e exclusões) são copiados para o Assinante e executados quando uma inserção, atualização ou exclusão é replicada para o Assinante. Quando uma alteração de esquema é feita em uma tabela em um Publicador do SQL Server, a replicação regenera esses procedimentos automaticamente chamando o mesmo conjunto de procedimentos internos de script para que os novos procedimentos correspondam ao novo esquema (não há suporte para replicação de alterações de esquema para o Oracle Publishers).

Também é possível especificar procedimentos personalizados para substituir um ou mais dos procedimentos padrão. Os procedimentos personalizados devem ser alterados se a alteração do esquema afetar o procedimento. Por exemplo, se um procedimento fizer referência a uma coluna descartada em uma alteração de esquema, as referências à coluna deverão ser removidas do procedimento. Há dois modos para que a replicação propague um novo procedimento personalizado aos Assinantes:

  • A primeira opção é usar um procedimento de script personalizado para substituir os padrões usados pela replicação:

    1. Ao executar sp_addarticle (Transact-SQL), verifique se o @schema_option 0x02 bit é verdadeiro.

    2. Execute sp_register_custom_scripting (Transact-SQL) e especifique um valor de 'insert', 'update' ou 'delete' para o parâmetro @type e o nome do procedimento de script personalizado para o parâmetro @value.

    Na próxima alteração de esquema, a replicação chamará esse procedimento armazenado para substituir a definição pelo novo procedimento armazenado personalizado definido pelo usuário e depois propagará o procedimento para cada Assinante.

  • A segunda opção é usar um script que contenha uma nova definição de procedimento personalizado:

    1. Ao executar sp_addarticle (Transact-SQL), configure o @schema_option 0x02 bit como false para evitar que a replicação gere automaticamente procedimentos personalizados no Assinante.

    2. Antes de cada alteração de esquema, crie um novo arquivo de script e registre o script com replicação executando sp_register_custom_scripting (Transact-SQL). Especifique um valor de 'custom_script' para o parâmetro @type e o caminho para o script no Publicador para o parâmetro @value.

    Na próxima vez em que for feita uma alteração de esquema relevante, esse script será executado em cada Assinante dentro da mesma transação como o comando DDL. Após concluir a alteração de esquema, o registro do script será removido. Você deve registrar novamente o script para executá-lo após uma alteração de esquema subsequente.

Consulte Também

Especifique como as alterações são propagadas nos artigos transacionais
Fazer alterações de esquema em bancos de dados de publicação