Visualizzazione e modifica delle proprietà degli articoliView and Modify Article Properties

In questo argomento viene descritto come modificare le proprietà degli articoli in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo RMO (Replication Management Objects).This topic describes how to view and modify article properties in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Alcune proprietà non possono essere modificate dopo la creazione di una pubblicazione, mentre altre proprietà non possono essere modificate se sono presenti sottoscrizioni alla pubblicazione.Some properties cannot be modified after a publication has been created, and others cannot be modified if there are subscriptions to the publication. Le proprietà che non possono essere modificate vengono visualizzate come di sola lettura.Properties that cannot be modified are displayed as read-only.

Indicazioni Recommendations

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Le proprietà degli articoli possono essere visualizzate e modificate nella finestra di dialogo Proprietà pubblicazione <Pubblicazione> disponibile in MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio e Monitoraggio replica.View and modify article properties in the Publication Properties - <Publication> dialog box, which is available in MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio and Replication Monitor. Per informazioni sull'avvio di Monitoraggio replica, vedere Avviare Monitoraggio replica.For information about starting Replication Monitor, see Start the Replication Monitor.

  • Nella pagina Generale sono presenti il nome e la descrizione della pubblicazione, il nome del database, il tipo di pubblicazione e le impostazioni di scadenza della sottoscrizione.The General page includes the publication name and description, the database name, the type of publication, and the subscription expiration settings.

  • La pagina Articoli corrisponde alla pagina Articoli presente nella Creazione guidata nuova pubblicazione.The Articles page corresponds to the Articles page in the New Publication Wizard. Utilizzare questa pagina per aggiungere ed eliminare articoli e per modificare le proprietà e l'applicazione di filtri a colonne per gli articoli.Use this page to add and delete articles, and to change properties and column filtering for articles.

  • La pagina Filtra righe corrisponde alla pagina Filtro righe tabella presente nella Creazione guidata nuova pubblicazione.The Filter Rows page corresponds to the Filter Table Rows page in the New Publication Wizard. Utilizzare questa pagina per aggiungere, modificare ed eliminare filtri di righe statici per tutti i tipi di pubblicazioni e aggiungere, modificare ed eliminare filtri di righe con parametri e filtri join per le pubblicazioni di tipo merge.Use this page to add, edit, and delete static row filters for all types of publications, and to add, edit, and delete parameterized row filters and join filters for merge publications.

  • La pagina Snapshot consente di specificare il formato e la posizione dello snapshot, se comprimere lo snapshot e gli script da eseguire prima e dopo l'applicazione dello snapshot.The Snapshot page allows you to specify the format and location of the snapshot, whether the snapshot should be compressed, and scripts to run before and after the snapshot is applied.

  • La pagina Snapshot FTP , per le pubblicazioni snapshot e transazionali e per le pubblicazioni di tipo merge nei server di pubblicazione che eseguono versioni precedenti a SQL Server 2005, consente di specificare se i Sottoscrittori possono scaricare file di snapshot tramite FTP (File Transfer Protocol).The FTP Snapshot page (for snapshot and transactional publications, and merge publications for Publishers running versions prior to SQL Server 2005) allows you to specify whether Subscribers can download snapshot files through File Transfer Protocol (FTP).

  • La pagina Snapshot FTP e Internet , per le pubblicazioni di tipo merge da server di pubblicazione che eseguono SQL Server 2005 o versione successiva, consente di specificare se i Sottoscrittori possono scaricare file di snapshot tramite FTP e sincronizzare le sottoscrizioni tramite HTTPS.The FTP Snapshot and Internet page (for merge publications from Publishers running SQL Server 2005 or later) allows you to specify whether Subscribers can download snapshot files through FTP, and whether Subscribers can synchronize subscriptions through HTTPS.

  • Nella pagina Opzioni della sottoscrizione è possibile impostare alcune opzioni che si applicano a tutte le sottoscrizioni.The Subscription Options page allows you to set a number of options that apply to all subscriptions. Le opzioni variano in relazione al tipo di pubblicazione.The options differ depending on the type of publication.

  • La pagina Elenco accesso pubblicazione consente di specificare quali account di accesso e gruppi possono accedere a una pubblicazione.The Publication Access List page allows you to specify which logins and groups can access a publication.

  • La pagina Sicurezza agente consente di accedere alle impostazioni degli account utilizzati per l'esecuzione degli agenti seguenti e per la creazione di connessioni ai computer in una topologia di replica: l'agente snapshot per tutte le pubblicazioni, l'agente di lettura log per tutte le pubblicazioni transazionali e l'agente di lettura coda per le pubblicazioni transazionali che consentono sottoscrizioni ad aggiornamento in coda.The Agent Security page allows you to access settings for the accounts under which the following agents run and make connections to the computers in a replication topology: the Snapshot Agent for all publications; the Log Reader Agent for all transactional publications; and the Queue Reader Agent for transactional publications that allow queued updating subscriptions.

  • La pagina Partizioni dati , per le pubblicazioni di tipo merge da server di pubblicazione che eseguono SQL Server 2005 o versione successiva, consente di specificare se i Sottoscrittori delle pubblicazioni con filtri con parametri possono richiedere uno snapshot qualora non ne fosse disponibile uno.The Data Partitions page (for merge publications from Publishers running SQL Server 2005 or later) allows you to specify whether Subscribers to publications with parameterized filters can request a snapshot if one is not available. In questa pagina è inoltre possibile generare snapshot per una o più partizioni, una sola volta o in base a una pianificazione periodica.It also allows you to generate snapshots for one or more partitions, either once or on a recurring schedule.

Per visualizzare e modificare le proprietà degli articoliTo view and modify article properties

  1. Nella pagina Articoli della finestra di dialogo Proprietà pubblicazione - <Pubblicazione> selezionare un articolo e quindi fare clic su Proprietà articolo.On the Articles Page of the Publication Properties - <Publication> dialog box, select an article, and then click Article Properties.

  2. Selezionare gli articoli a cui si applicano le modifiche delle proprietà:Select which articles property changes should apply to:

    • Fare clic su Imposta proprietà dell'articolo di <TipoOggetto> evidenziato per aprire la finestra di dialogo Proprietà articolo - <NomeOggetto>. Le modifiche apportate alle proprietà in questa finestra di dialogo vengono applicate solo all'oggetto evidenziato nel riquadro degli oggetti nella pagina Articoli.Click Set Properties of Highlighted <ObjectType> Article to launch the Article Properties - <ObjectName> dialog box; property changes made in this dialog box are applied only to the object that is highlighted in the object pane on the Articles page.

    • Fare clic su Imposta proprietà di tutti gli articoli di <TipoOggetto> per aprire la finestra di dialogo Proprietà di tutti gli articoli <TipoOggetto>. Le modifiche apportate alle proprietà in questa finestra di dialogo vengono applicate a tutti gli oggetti del tipo indicato nel riquadro degli oggetti all'interno della pagina Articoli, inclusi quelli non ancora selezionati per la pubblicazione.Click Set Properties of All <ObjectType> Articles, to launch the Properties for All <ObjectType> Articles dialog box; property changes made in this dialog box are applied to all objects of that type in the object pane on the Articles page, including ones not yet selected for publication.

      Nota

      Le modifiche apportate alle proprietà nella finestra di dialogo Proprietà di tutti gli articoli <TipoOggetto> sostituiscono tutte le modifiche eseguite precedentemente nella finestra di dialogo Proprietà articolo - <NomeOggetto>.Property changes made in the Properties for All <ObjectType> Articles dialog box override any made previously in the Article Properties - <ObjectName> dialog box. Se ad esempio si desidera impostare alcuni valori predefiniti per tutti gli articoli di un tipo di oggetto e, al contempo, alcune proprietà per singoli oggetti, è necessario impostare innanzitutto i valori predefiniti per tutti gli articoli,If, for example, you want to set a number of defaults for all articles of an object type, but also want to set some properties for individual objects, set the defaults for all articles first. quindi le proprietà relative ai singoli oggetti.Then set the properties for the individual objects.

  3. Se necessario, modificare le proprietà e quindi fare clic su OK.Modify any properties if necessary, and then click OK.

  4. Fare clic su OK nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.Click OK on the Publication Properties - <Publication> dialog box.

Utilizzo di Transact-SQL Using Transact-SQL

È possibile modificare gli articoli e restituire a livello di programmazione le relative proprietà tramite le stored procedure di replica.Articles can be modified and their properties returned programmatically using replication stored procedures. Le stored procedure utilizzate dipenderanno dal tipo di pubblicazione a cui appartiene l'articolo.The stored procedures that you use depend on the type of publication to which the article belongs.

Per visualizzare le proprietà di un articolo appartenente a una pubblicazione snapshot o transazionaleTo view the properties of an article belonging to a snapshot or transactional publication

  1. Eseguire sp_helparticle, specificando il nome della pubblicazione per il parametro @publication e il nome dell'articolo per il parametro @article .Execute sp_helparticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. Se @articleviene omesso, verranno restituite informazioni su tutti gli articoli della pubblicazione.If you do not specify @article, information will be returned for all articles in the publication.

  2. Eseguire sp_helparticlecolumns per gli articoli di tabella per elencare tutte le colonne disponibili nella tabella di base.Execute sp_helparticlecolumns for table articles to list all columns available in the base table.

Per modificare le proprietà di un articolo appartenente a una pubblicazione snapshot o transazionaleTo modify the properties of an article belonging to a snapshot or transactional publication

  1. Eseguire sp_changearticle, specificando la proprietà dell'articolo da modificare nel parametro @property e il nuovo valore di questa proprietà nel parametro @value .Execute sp_changearticle, specifying the article property being changed in the @property parameter and the new value of this property in the @value parameter.

    Nota

    Se la modifica richiede la generazione di un nuovo snapshot, è necessario specificare anche il valore 1 per @force_invalidate_snapshote se richiede la reinizializzazione dei Sottoscrittori, è necessario specificare anche il valore 1 per @force_reinit_subscription.If the change requires the generation of a new snapshot, you must also specify a value of 1 for @force_invalidate_snapshot, and if the change requires that Subscribers be reinitialized, you must also specify a value of 1 for @force_reinit_subscription. Per altre informazioni sulle proprietà che, in caso di modifica, richiedono un nuovo snapshot o una reinizializzazione, vedere Modificare le proprietà di pubblicazioni e articoli.For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

Per visualizzare le proprietà di un articolo appartenente a una pubblicazione di tipo mergeTo view the properties of an article belonging to a merge publication

  1. Eseguire sp_helpmergearticle, specificando il nome della pubblicazione per il parametro @publication e il nome dell'articolo per il parametro @article .Execute sp_helpmergearticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. Se questi parametri vengono omessi, verranno restituite informazioni su tutti gli articoli della pubblicazione o del server di pubblicazione.If you do not specify these parameters, information will be returned for all articles in a publication or at the publisher.

  2. Eseguire sp_helpmergearticlecolumn per gli articoli di tabella per elencare tutte le colonne disponibili nella tabella di base.Execute sp_helpmergearticlecolumn for table articles to list all columns available in the base table.

Per modificare le proprietà di un articolo appartenente a una pubblicazione di tipo mergeTo modify the properties of an article belonging to a merge publication

  1. Eseguire sp_changemergearticle, specificando la proprietà dell'articolo da modificare nel parametro @property e il nuovo valore di questa proprietà nel parametro @value .Execute sp_changemergearticle, specifying the article property being changed in the @property parameter and the new value of this property in the @value parameter.

    Nota

    Se la modifica richiede la generazione di un nuovo snapshot, è necessario specificare anche il valore 1 per @force_invalidate_snapshote se richiede la reinizializzazione dei Sottoscrittori, è necessario specificare anche il valore 1 per @force_reinit_subscription.If the change requires the generation of a new snapshot, you must also specify a value of 1 for @force_invalidate_snapshot, and if the change requires that Subscribers be reinitialized, you must also specify a value of 1 for @force_reinit_subscription. Per altre informazioni sulle proprietà che, in caso di modifica, richiedono un nuovo snapshot o una reinizializzazione, vedere Modificare le proprietà di pubblicazioni e articoli.For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

Esempio (Transact-SQL) Example (Transact-SQL)

In questo esempio di replica transazionale vengono restituite le proprietà dell'articolo pubblicato.This transactional replication example returns the properties of the published article.

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

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

In questo esempio di replica transazionale vengono modificate le opzioni dello schema per l'articolo pubblicato.This transactional replication example changes the schema options for the published article.

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 [AdventureWorks2012]
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.This merge replication example returns the properties of the published article.

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

USE [AdventureWorks2012]
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.This merge replication example changes the conflict detection settings for a published article.

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 [AdventureWorks2012]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Utilizzo di RMO (Replication Management Objects) Using Replication Management Objects (RMO)

È possibile modificare gli articoli e accedere alle relative proprietà a livello di programmazione utilizzando oggetti RMO (Replication Management Objects).You can modify articles and access their properties programmatically by using Replication Management Objects (RMO). Le classi RMO utilizzate per la visualizzazione o la modifica degli articoli dipendono dal tipo di pubblicazione cui appartiene l'articolo.The RMO classes you use to view or modify article properties depend on the type of publication to which the article belongs.

Per visualizzare o modificare le proprietà di un articolo che appartiene a una pubblicazione snapshot o transazionaleTo view or modify properties of an article that belongs to a snapshot or transactional publication

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.Create a connection to the Publisher by using the ServerConnection class.

  2. Creare un'istanza della classe TransArticle.Create an instance of the TransArticle class.

  3. Impostare le proprietà Name, PublicationName e DatabaseName.Set the Name, PublicationName, and DatabaseName properties.

  4. Impostare la connessione del passaggio 1 per la proprietà ConnectionContext.Set the connection from step 1 for the ConnectionContext property.

  5. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto.Call the LoadProperties method to get the properties of the object. Se questo metodo restituisce false, le proprietà dell'articolo sono state definite in modo non corretto nel passaggio 3 oppure l'articolo non esiste.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (Facoltativo) Per modificare le proprietà, specificare un nuovo valore per una delle proprietà dell'oggetto TransArticle che è possibile impostare.(Optional) To change properties, set a new value for one of the TransArticle properties that can be set.

  7. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

Per visualizzare o modificare le proprietà di un articolo che appartiene a una pubblicazione di tipo mergeTo view or modify properties of an article that belongs to a merge publication

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.Create a connection to the Publisher by using the ServerConnection class.

  2. Creare un'istanza della classe MergeArticle.Create an instance of the MergeArticle class.

  3. Impostare le proprietà Name, PublicationName e DatabaseName.Set the Name, PublicationName, and DatabaseName properties.

  4. Impostare la connessione del passaggio 1 per la proprietà ConnectionContext.Set the connection from step 1 for the ConnectionContext property.

  5. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto.Call the LoadProperties method to get the properties of the object. Se questo metodo restituisce false, le proprietà dell'articolo sono state definite in modo non corretto nel passaggio 3 oppure l'articolo non esiste.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (Facoltativo) Per modificare le proprietà, specificare un nuovo valore per una delle proprietà dell'oggetto MergeArticle che è possibile impostare.(Optional) To change properties, set a new value for one of the MergeArticle properties that can be set.

  7. (Facoltativo) Se si specifica un valore true per CachePropertyChanges, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. Se si specifica un valore false per CachePropertyChanges (impostazione predefinita), le modifiche vengono inviate immediatamente al server.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

Esempio (RMO) Example (RMO)

In questo esempio viene modificato un articolo di merge per specificare il gestore della logica di business utilizzato dall'articolo.This example changes a merge article to specify the business logic handler used by the article.

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string articleName = "SalesOrderHeader";

// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";

MergeArticle article = new MergeArticle();

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
	// Connect to the Publisher.
	conn.Connect();

	// Set the required properties for the article.
	article.ConnectionContext = conn;
	article.Name = articleName;
	article.DatabaseName = publicationDbName;
	article.PublicationName = publicationName;

	// Load the article properties.
	if (article.LoadProperties())
	{
		article.ArticleResolver = customLogic;
	}
	else
	{
		// Throw an exception of the article does not exist.
		throw new ApplicationException(String.Format(
		"{0} is not published in {1}", articleName, publicationName));
	}
	
}
catch (Exception ex)
{
	// Do error handling here and rollback the transaction.
	throw new ApplicationException(String.Format(
		"The business logic handler {0} could not be associated with " +
		" the {1} article.",customLogic,articleName), ex);
}
finally
{
	conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim articleName As String = "SalesOrderHeader"

' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"

Dim article As MergeArticle = New MergeArticle()

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the article.
    article.ConnectionContext = conn
    article.Name = articleName
    article.DatabaseName = publicationDbName
    article.PublicationName = publicationName

    ' Load the article properties.
    If article.LoadProperties() Then
        article.ArticleResolver = customLogic
    Else
        ' Throw an exception of the article does not exist.
        Throw New ApplicationException(String.Format( _
         "{0} is not published in {1}", articleName, publicationName))
    End If

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException(String.Format( _
     "The business logic handler {0} could not be associated with " + _
     " the {1} article.", customLogic, articleName), ex)
Finally
    conn.Disconnect()
End Try

Vedere ancheSee Also

Implementare un gestore della logica di business per un articolo di merge Implement a Business Logic Handler for a Merge Article
Pubblicare dati e oggetti di database Publish Data and Database Objects
Modificare le proprietà di pubblicazioni e articoli Change Publication and Article Properties
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Advanced Merge Replication Conflict Detection and Resolution Advanced Merge Replication Conflict Detection and Resolution