Procedura: Visualizzazione e modifica delle proprietà degli articoli (programmazione Transact-SQL della replica)

È possibile modificare gli articoli e restituire a livello di programmazione le relative proprietà tramite le stored procedure di replica. Le stored procedure utilizzate dipenderanno dal tipo di pubblicazione a cui appartiene l'articolo.

Per visualizzare le proprietà di un articolo appartenente a una pubblicazione snapshot o transazionale

  1. Eseguire sp_helparticle, specificando il nome della pubblicazione per il parametro @publication e il nome dell'articolo per il parametro @article. Se @article viene omesso, verranno restituite informazioni su tutti gli articoli della pubblicazione.

  2. Eseguire sp_helparticlecolumns per gli articoli di tabella per elencare tutte le colonne disponibili nella tabella di base.

Per modificare le proprietà di un articolo appartenente a una pubblicazione snapshot o transazionale

  • Eseguire sp_changearticle, specificando la proprietà dell'articolo da modificare nel parametro @property e il nuovo valore di questa proprietà nel parametro @value.

    [!NOTA]

    Se la modifica richiede la generazione di un nuovo snapshot, è necessario specificare anche il valore 1 per @force_invalidate_snapshot e se richiede la reinizializzazione dei Sottoscrittori, è necessario specificare anche il valore 1 per @force_reinit_subscription. Per ulteriori informazioni sulle proprietà che, in caso di modifica, richiedono un nuovo snapshot o una reinizializzazione, vedere Modifica delle proprietà di pubblicazioni e articoli.

Per visualizzare le proprietà di un articolo appartenente a una pubblicazione di tipo merge

  1. Eseguire sp_helpmergearticle, specificando il nome della pubblicazione per il parametro @publication e il nome dell'articolo per il parametro @article. Se questi parametri vengono omessi, verranno restituite informazioni su tutti gli articoli della pubblicazione o del server di pubblicazione.

  2. Eseguire sp_helpmergearticlecolumn per gli articoli di tabella per elencare tutte le colonne disponibili nella tabella di base.

Per modificare le proprietà di un articolo appartenente a una pubblicazione di tipo merge

  • Eseguire sp_changemergearticle, specificando la proprietà dell'articolo da modificare nel parametro @property e il nuovo valore di questa proprietà nel parametro @value.

    [!NOTA]

    Se la modifica richiede la generazione di un nuovo snapshot, è necessario specificare anche il valore 1 per @force_invalidate_snapshot e se richiede la reinizializzazione dei Sottoscrittori, è necessario specificare anche il valore 1 per @force_reinit_subscription. Per ulteriori informazioni sulle proprietà che, in caso di modifica, richiedono un nuovo snapshot o una reinizializzazione, vedere Modifica delle proprietà di pubblicazioni e articoli.

Esempio

In questo esempio di replica transazionale vengono restituite le proprietà dell'articolo pubblicato.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks]
EXEC sp_helparticle
  @publication = @publication;
GO

In questo esempio di replica transazionale vengono modificate le opzioni dello schema per l'articolo pubblicato.

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

In questo esempio di replica di tipo merge vengono restituite le proprietà dell'articolo pubblicato.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks]
EXEC sp_helpmergearticle
  @publication = @publication;
GO

In questo esempio di replica di tipo merge vengono modificate le impostazioni di rilevamento dei conflitti per un articolo pubblicato.

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