Como exibir e modificar propriedades de artigos (Programação Transact-SQL de replicação)
É possível modificar artigos e retornar suas propriedades programaticamente usando procedimentos armazenados de replicação. Os procedimentos armazenados usados dependem do tipo de publicação ao qual o artigo pertence.
Para exibir as propriedades de um artigo que pertence a um instantâneo ou publicação transacional
Execute sp_helparticle, especificando o nome da publicação para o parâmetro @publication e o nome do artigo para o parâmetro @article. Se você não especificar @article, serão retornadas informações de todos os artigos na publicação.
Execute sp_helparticlecolumns para que os artigos de tabela listem todas as colunas disponíveis na tabela base.
Para modificar as propriedades de um artigo que pertence a um instantâneo ou publicação transacional
Execute sp_changearticle, especificando a propriedade do artigo que está sendo alterado no parâmetro @property e o novo valor desta propriedade no parâmetro @value.
Observação Se a alteração exigir a geração de um novo instantâneo, deve-se também especificar um valor 1 para @force_invalidate_snapshot, e se a alteração exigir que os Assinantes sejam reinicializados, deve-se também especificar um valor 1 para @force_reinit_subscription. Para obter mais informações sobre as propriedades que, quando alteradas, exigem um instantâneo novo ou reinicialização, consulte Alterando a publicação e as propriedades do artigo.
Para exibir as propriedades de um artigo que pertence a uma publicação de mesclagem
Execute sp_helpmergearticle, especificando o nome da publicação para o parâmetro @publication e o nome do artigo para o parâmetro @article. Se você não especificar esses parâmetros, serão retornadas informações de todos os artigos em uma publicação ou no publicador.
Execute sp_helpmergearticlecolumn para que os artigos de tabela listem todas as colunas disponíveis na tabela base.
Para modificar as propriedades de um artigo que pertence a uma publicação de mesclagem
Execute sp_changemergearticle, especificando a propriedade de artigo que está sendo alterada no parâmetro @property e o novo valor dessa propriedade no parâmetro @value.
Observação Se a alteração exigir a geração de um novo instantâneo, deve-se também especificar um valor 1 para @force_invalidate_snapshot, e se a alteração exigir que os Assinantes sejam reinicializados, deve-se também especificar um valor 1 para @force_reinit_subscription. Para obter mais informações sobre as propriedades que, quando alteradas, exigem um instantâneo novo ou reinicialização, consulte Alterando a publicação e as propriedades do artigo.
Exemplo
Esse exemplo de replicação transacional retorna as propriedades do artigo publicado.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks]
EXEC sp_helparticle
@publication = @publication;
GO
Esse exemplo de replicação transacional altera as opções de esquema para o artigo publicado.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Esse exemplo de replicação de mesclagem retorna as propriedades do artigo publicado.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks]
EXEC sp_helpmergearticle
@publication = @publication;
GO
Esse exemplo de replicação de mesclagem altera as configurações de detecção de conflito para um artigo publicado.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';
-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO