Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Este tópico descreve como definir o método de propagação para alterações de dados em artigos transacionais no SQL Server utilizando o SQL Server Management Studio ou Transact-SQL.
Por predefinição, a replicação transacional propaga alterações para os Subscritores utilizando um conjunto de procedimentos armazenados para cada artigo. Pode substituir estes procedimentos por procedimentos personalizados. Para mais informações, consulte Especificar Como as Alterações São Propagadas para Artigos Transacionais.
Limitações e restrições
- Deve ter-se cuidado ao editar qualquer um dos ficheiros snapshot gerados pela replicação. Testar e prestar suporte à lógica personalizada nos procedimentos armazenados personalizados. A Microsoft não oferece suporte para lógica personalizada.
Usando o SQL Server Management Studio
Especifique o método de propagação no separador Propriedades da caixa de diálogo Propriedades do Artigo - <Artigo> , que está disponível no Assistente de Nova Publicação e na caixa de diálogo Propriedades de Publicação - <Publicação> . Para mais informações sobre como usar o assistente e aceder à caixa de diálogo, veja Criar uma Publicação e Visualizar e Modificar Propriedades de Publicação.
Para especificar o método de propagação
Na página de Artigos do Assistente de Novas Publicações ou na caixa de diálogo Propriedades de Publicação - <Publicação> , selecione uma tabela e depois selecione Propriedades do Artigo.
Selecione Definir Propriedades do Artigo de Tabela Destacado.
No separador Propriedades da caixa de diálogo Propriedades do Artigo - <Artigo>, na secção Entrega de Declarações, especifique o método de propagação para cada operação usando os INSERT menus de formato de entrega, UPDATE formato de entrega e DELETE formato de entrega.
Selecione OK.
Se estiver na caixa de diálogo Propriedades de Publicação - <Publicação> , selecione OK para guardar e feche a caixa de diálogo.
Gerar e utilizar procedimentos armazenados personalizados
Na página de Artigos do Assistente de Novas Publicações ou na caixa de diálogo Propriedades de Publicação - <Publicação> , selecione uma tabela e depois selecione Propriedades do Artigo.
Selecione Definir Propriedades do Artigo de Tabela Destacado.
No separador Propriedades da caixa de diálogo Propriedades do Artigo - <Artigo> , na secção Entrega de Declarações , selecione a sintaxe CALL no menu de formato de entrega apropriado (INSERT formato de entrega, UPDATE formato de entrega ou DELETE formato de entrega), e depois escreva o nome do procedimento a usar em INSERT procedimento armazenado, DELETE procedimento armazenado ou UPDATE procedimento armazenado. Para obter mais informações sobre a sintaxe de CALL, consulte a secção "Sintaxe de CALL para procedimentos armazenados" em Especificar como as alterações são propagadas para artigos transacionais.
Selecione OK.
Se estiver na caixa de diálogo Propriedades de Publicação - <Publicação> , selecione OK para guardar e feche a caixa de diálogo.
Quando o snapshot da publicação for gerado, incluirá o procedimento que especificou no passo anterior. Os procedimentos usarão a sintaxe CALL que especificaste, mas incluirão a lógica padrão que a replicação utiliza.
Depois de o snapshot ter sido gerado, navegue até à pasta snapshot da publicação a que este artigo pertence e localize o ficheiro .sch com o mesmo nome do artigo. Abra este ficheiro usando Notepad ou outro editor de texto, localize o CREATE PROCEDURE comando para os procedimentos armazenados de inserção, atualização ou eliminação, e edite a definição do procedimento para fornecer qualquer lógica personalizada para propagar alterações de dados. Se o snapshot for regenerado, deve voltar a criar o procedimento personalizado.
Usando Transact-SQL
A replicação transacional permite-lhe controlar como as alterações são propagadas do Publisher para os Subscritores, e este método de propagação pode ser definido programaticamente quando um artigo é criado e alterado posteriormente usando procedimentos armazenados de replicação.
Note
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 eliminar) que ocorra numa linha de um dado publicado.
Para mais informações, consulte Especificar Como as Alterações São Propagadas para Artigos Transacionais.
Criar um artigo que utilize comandos Transact-SQL para propagar alterações nos dados
No Publisher da base de dados de publicações, execute sp_addarticle. Especifique o nome da publicação a que o artigo pertence para @publication, um nome para o artigo para @article, o objeto da base de dados publicado para @source_object e 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.
Note
Ao especificar um valor de SQL para qualquer um dos parâmetros acima, comandos desse tipo serão replicados ao Assinante como o comando de Transact-SQL apropriado.
Para obter mais informações, consulte Definição de um artigo.
Criar um artigo que não propague alterações de dados
No Publisher da base de dados de publicações, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto da base de dados publicado para @source_object, e 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.
Note
Ao especificar o valor NONE para qualquer um dos parâmetros acima, os comandos desse tipo não serão replicados para o Subscritor.
Para obter mais informações, consulte Definição de um artigo.
Criar um artigo com procedimentos armazenados personalizados modificados pelo utilizador
No Publisher da base de dados de publicações, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto da base de dados publicado para @source_object, um valor para a máscara de bits @schema_option que contenha o valor 0x02 (que permite a geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:
@ins_cmd - especificar um valor de CALL sp_MSins_article_name, onde article_name é o valor especificado para @article.
@del_cmd - especificar um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, onde article_name é o valor especificado para @article.
@upd_cmd - especificar 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.
Note
Para cada um dos parâmetros de comando acima, pode especificar o seu próprio nome para os procedimentos armazenados que a replicação gera.
Note
Para mais informações sobre a sintaxe CALL, SCALL, XCALL e MCALL, consulte Especificar Como as Alterações São Propagadas para Artigos Transacionais.
Para obter mais informações, consulte Definição de um artigo.
Depois de o snapshot ter sido gerado, navegue até à pasta snapshot da publicação a que este artigo pertence e localize o ficheiro .sch com o mesmo nome do artigo. Abra este ficheiro usando Notepad.exe, localize o CREATE PROCEDURE comando para os procedimentos armazenados de inserção, atualização ou eliminação, e edite a definição do procedimento para fornecer qualquer lógica personalizada para propagar alterações de dados. Para 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 para propagar as alterações aos dados
No Publisher da base de dados de publicações, execute sp_addarticle. Especifique o nome da publicação à qual o artigo pertence para @publication, um nome para o artigo para @article, o objeto da base de dados publicado para @source_object, um valor para a máscara de bits @schema_option que contenha o valor 0x02 (que permite a geração automática de procedimentos armazenados personalizados) e pelo menos um dos seguintes parâmetros:
@ins_cmd - especificar um valor de CALL sp_MSins_article_name, onde article_name é o valor especificado para @article.
@del_cmd - especificar um valor de CALL sp_MSdel_article_name ou XCALL sp_MSdel_article_name, onde article_name é o valor especificado para @article.
@upd_cmd - especificar 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.
Note
Para cada um dos parâmetros de comando acima, pode especificar o seu próprio nome para os procedimentos armazenados que a replicação gera.
Note
Para mais informações sobre a sintaxe CALL, SCALL, XCALL e MCALL, consulte Especificar Como as Alterações São Propagadas para Artigos Transacionais.
Para obter mais informações, consulte Definição de um artigo.
No Publicador, na base de dados de publicação, utilize a instrução ALTER PROCEDURE para editar sp_scriptpublicationcustomprocs de modo que devolva um script CREATE PROCEDURE para os procedimentos armazenados personalizados de inserção, atualização e eliminação. Para 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
No Publicador, na base de dados de publicações, 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 o passo 1 para cada método de propagação a ser alterado.