Ver y modificar las propiedades de un artículoView and Modify Article Properties

En este tema se aplica a: SíSQL Servernobase de datos de SQL Azurenoalmacenamiento de datos de SQL Azure ningún Almacenamiento de datos paralelosTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse En este tema se describe cómo ver y modificar las propiedades del artículo en SQL Server 2017SQL Server 2017 mediante SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL o Replication Management Objects (RMO). 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).

En este temaIn This Topic

Antes de comenzarBefore You Begin

Limitaciones y restriccionesLimitations and Restrictions

  • Algunas propiedades no se pueden modificar después de crearlas, y otras no se pueden modificar si existen suscripciones a la publicación.Some properties cannot be modified after a publication has been created, and others cannot be modified if there are subscriptions to the publication. Las propiedades que no se pueden modificar se muestran como de solo lectura.Properties that cannot be modified are displayed as read-only.

RecomendacionesRecommendations

Usar SQL Server Management StudioUsing SQL Server Management Studio

Vea y modifique propiedades de artículos en el cuadro de diálogo Propiedades de publicación: <Publicación>, que está disponible en MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio y en el Monitor de replicación.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. Para obtener información sobre cómo iniciar el Monitor de replicación, vea Iniciar el Monitor de replicación.For information about starting Replication Monitor, see Start the Replication Monitor.

  • La página General incluye el nombre y la descripción de la publicación, el nombre de la base de datos, el tipo de publicación y los valores de expiración de la suscripción.The General page includes the publication name and description, the database name, the type of publication, and the subscription expiration settings.

  • La página Artículos corresponde a la página Artículos del Asistente para nueva publicación.The Articles page corresponds to the Articles page in the New Publication Wizard. Utilice esta página para agregar y eliminar artículos, y para cambiar propiedades y el filtro de columna de artículos.Use this page to add and delete articles, and to change properties and column filtering for articles.

  • La página Filtrar filas corresponde a la página Filtrar filas de tabla del Asistente para nueva publicación.The Filter Rows page corresponds to the Filter Table Rows page in the New Publication Wizard. Utilice esta página para agregar, editar y eliminar filtros de fila estáticos de todos los tipos de publicaciones, y para agregar, editar y eliminar filtros de fila con parámetros y filtros de combinación de publicaciones de combinación.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 página Instantánea permite especificar el formato y la ubicación de la instantánea, si la instantánea debe comprimirse y si los scripts deben ejecutarse antes y después de aplicar la instantánea.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 página Instantánea de FTP (en publicaciones de instantáneas y transaccionales, y publicaciones de combinación en publicadores que ejecutan versiones anteriores a SQL Server 2005) permite especificar si los suscriptores pueden descargar archivos de instantáneas mediante el Protocolo de transferencia de archivos (FTP).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 página Instantánea de FTP e Internet (en publicaciones de combinación de publicadores que ejecutan SQL Server 2005 o posterior) permite especificar si los suscriptores pueden descargar archivos de instantáneas mediante FTP y si los suscriptores pueden sincronizar suscripciones mediante 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.

  • La página Opciones de suscripción permite establecer diversas opciones que se aplican a todas las suscripciones.The Subscription Options page allows you to set a number of options that apply to all subscriptions. Las opciones varían según el tipo de publicación.The options differ depending on the type of publication.

  • La página Lista de acceso a la publicación permite especificar qué inicios de sesión y grupos pueden tener acceso a una publicación.The Publication Access List page allows you to specify which logins and groups can access a publication.

  • La página Seguridad del agente le permite tener acceso a la configuración para las cuentas con las que se ejecutan los agentes siguientes y realizan conexiones a los equipos en una topología de replicación: el Agente de instantáneas para todas las publicaciones, el Agente de registro del LOG para todas las publicaciones transaccionales y el Agente de lectura de cola para las publicaciones transaccionales que permiten las suscripciones de actualización en cola.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 página Particiones de datos (en publicaciones de combinación de publicadores que ejecutan SQL Server 2005 o posterior) permite especificar si los suscriptores a publicaciones con filtros con parámetros pueden solicitar una instantánea si no está disponible.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. También permite generar instantáneas de una o varias particiones, solo una vez o varias veces.It also allows you to generate snapshots for one or more partitions, either once or on a recurring schedule.

Para ver y modificar propiedades de un artículoTo view and modify article properties

  1. En la página Artículos del cuadro de diálogo Propiedades de la publicación: <Publicación>, seleccione un artículo y luego haga clic en Propiedades del artículo.On the Articles Page of the Publication Properties - <Publication> dialog box, select an article, and then click Article Properties.

  2. Seleccione a qué propiedades de artículos se deben aplicar los cambios:Select which articles property changes should apply to:

    • Haga clic en Establecer propiedades del artículo de <tipoDeObjeto> resaltado para iniciar el cuadro de diálogo Propiedades del artículo: <nombreDeObjeto>. Los cambios de propiedad realizados en este cuadro de diálogo solo se aplican al objeto que está resaltado en el panel de objetos de la página Artículos.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.

    • Haga clic en Establecer propiedades de todos los artículos de <tipoDeObjeto>, para iniciar el cuadro de diálogo Propiedades de todos los artículos de <tipoDeObjeto>. Los cambios de propiedad realizados en este cuadro de diálogo se aplican a todos los objetos de ese tipo en el panel de objetos de la página Artículos, incluidos los que todavía no se hayan seleccionado para la publicación.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

      Los cambios de propiedades realizados en el cuadro de diálogo Propiedades de todos los artículos de <tipoDeObjeto> reemplazan los que se hicieran anteriormente en el cuadro de diálogo Propiedades del artículo: <tipoDeObjeto>.Property changes made in the Properties for All <ObjectType> Articles dialog box override any made previously in the Article Properties - <ObjectName> dialog box. Por ejemplo, si desea establecer varios valores predeterminados para todos los artículos de un tipo de objeto, pero solamente desea establecer algunas propiedades para objetos individuales, establezca primero los valores predeterminados para todos los artículos.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. A continuación, establezca las propiedades de los objetos individuales.Then set the properties for the individual objects.

  3. Modifique las propiedades si es necesario y, a continuación, haga clic en Aceptar.Modify any properties if necessary, and then click OK.

  4. Haga clic en Aceptar en el cuadro de diálogo Propiedades de la publicación: <Publicación>.Click OK on the Publication Properties - <Publication> dialog box.

Usar Transact-SQLUsing Transact-SQL

Se pueden modificar los artículos y devolver sus propiedades mediante programación con los procedimientos almacenados de replicación.Articles can be modified and their properties returned programmatically using replication stored procedures. Los procedimientos almacenados que se usen dependerán del tipo de publicación a la que pertenece el artículo.The stored procedures that you use depend on the type of publication to which the article belongs.

Para ver las propiedades de un artículo que pertenece a una publicación transaccional o de instantáneasTo view the properties of an article belonging to a snapshot or transactional publication

  1. Ejecute sp_helparticle, especificando el nombre de la publicación para el parámetro @publication y el nombre de artículo para el parámetro @article .Execute sp_helparticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. Si no especifica @article, se devolverá información para todos los artículos de la publicación.If you do not specify @article, information will be returned for all articles in the publication.

  2. Ejecute sp_helparticlecolumns para que los artículos de tabla muestren todas las columnas disponibles en la tabla base.Execute sp_helparticlecolumns for table articles to list all columns available in the base table.

Para modificar las propiedades de un artículo que pertenece a una publicación transaccional o de instantáneasTo modify the properties of an article belonging to a snapshot or transactional publication

  1. Ejecute sp_changearticle, especificando la propiedad de artículo que se está cambiando en el parámetro @property y el nuevo valor de esta propiedad en el parámetro @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

    Si el cambio requiere la generación de una nueva instantánea, también debe especificar el valor 1 para @force_invalidate_snapshot, y si el cambio requiere que se reinicialicen los suscriptores, debe especificar el valor 1 para @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. Para más información sobre las propiedades que, cuando se cambian, necesitan una nueva instantánea o una reinicialización, Change Publication and Article Properties (Cambiar las propiedades de la publicación y de los artículos).For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

Para ver las propiedades de un artículo que pertenece a una publicación de combinaciónTo view the properties of an article belonging to a merge publication

  1. Ejecute sp_helpmergearticle, especificando el nombre de la publicación para el parámetro @publication y el nombre de artículo para el parámetro @article .Execute sp_helpmergearticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. Si no especifica estos parámetros, se devolverá información para todos los artículos de una publicación o en el publicador.If you do not specify these parameters, information will be returned for all articles in a publication or at the publisher.

  2. Ejecute sp_helpmergearticlecolumn para que los artículos de tabla muestren todas las columnas disponibles en la tabla base.Execute sp_helpmergearticlecolumn for table articles to list all columns available in the base table.

Para modificar las propiedades de un artículo que pertenece a una publicación de combinaciónTo modify the properties of an article belonging to a merge publication

  1. Ejecute sp_changemergearticle, especificando la propiedad de artículo que se está cambiando en el parámetro @property y el nuevo valor de esta propiedad en el parámetro @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

    Si el cambio requiere la generación de una nueva instantánea, también debe especificar el valor 1 para @force_invalidate_snapshot, y si el cambio requiere que se reinicialicen los suscriptores, debe especificar el valor 1 para @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. Para más información sobre las propiedades que, cuando se cambian, necesitan una nueva instantánea o una reinicialización, Change Publication and Article Properties (Cambiar las propiedades de la publicación y de los artículos).For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

Ejemplo (Transact-SQL)Example (Transact-SQL)

Este ejemplo de replicación transaccional devuelve las propiedades del artículo publicado.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

Este ejemplo de replicación transaccional cambia las opciones de esquema del artículo publicado.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

Este ejemplo de replicación de mezcla devuelve las propiedades del artículo publicado.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

Este ejemplo de replicación de mezcla cambia los valores de detección de conflictos para un artículo publicado.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

Usar Replication Management Objects (RMO)Using Replication Management Objects (RMO)

Puede modificar los artículos y obtener acceso mediante programación a sus propiedades utilizando Replication Management Objects (RMO).You can modify articles and access their properties programmatically by using Replication Management Objects (RMO). Las clases RMO que usa para ver o modificar las propiedades de artículo dependen del tipo de publicación a la que pertenece el artículo.The RMO classes you use to view or modify article properties depend on the type of publication to which the article belongs.

Para ver o modificar propiedades de un artículo que pertenece a una publicación transaccional o de instantáneasTo view or modify properties of an article that belongs to a snapshot or transactional publication

  1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Cree una instancia de la clase TransArticle .Create an instance of the TransArticle class.

  3. Establezca las propiedades Name, PublicationNamey DatabaseName .Set the Name, PublicationName, and DatabaseName properties.

  4. Establezca la conexión del paso 1 para la propiedad ConnectionContext .Set the connection from step 1 for the ConnectionContext property.

  5. Llame al método LoadProperties para obtener las propiedades del objeto.Call the LoadProperties method to get the properties of the object. Si este método devuelve false, se definieron incorrectamente las propiedades de artículo en el paso 3, o bien el artículo no existe.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (Opcional) Para cambiar las propiedades, establezca un nuevo valor para una de las propiedades TransArticle que se pueden establecer.(Optional) To change properties, set a new value for one of the TransArticle properties that can be set.

  7. (Opcional) Si especificara un valor de true para CachePropertyChanges, llame al método CommitPropertyChanges para confirmar los cambios en el servidor.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. Si especificó el valor false para CachePropertyChanges (predeterminado), los cambios se envían inmediatamente al servidor.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

Para ver o modificar propiedades de un artículo que pertenece a una publicación de combinaciónTo view or modify properties of an article that belongs to a merge publication

  1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Cree una instancia de la clase MergeArticle .Create an instance of the MergeArticle class.

  3. Establezca las propiedades Name, PublicationNamey DatabaseName .Set the Name, PublicationName, and DatabaseName properties.

  4. Establezca la conexión del paso 1 para la propiedad ConnectionContext .Set the connection from step 1 for the ConnectionContext property.

  5. Llame al método LoadProperties para obtener las propiedades del objeto.Call the LoadProperties method to get the properties of the object. Si este método devuelve false, se definieron incorrectamente las propiedades de artículo en el paso 3, o bien el artículo no existe.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (Opcional) Para cambiar las propiedades, establezca un nuevo valor para una de las propiedades MergeArticle que se pueden establecer.(Optional) To change properties, set a new value for one of the MergeArticle properties that can be set.

  7. (Opcional) Si especificara un valor de true para CachePropertyChanges, llame al método CommitPropertyChanges para confirmar los cambios en el servidor.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. Si especificó el valor false para CachePropertyChanges (predeterminado), los cambios se envían inmediatamente al servidor.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

Ejemplo (RMO)Example (RMO)

Este ejemplo cambia un artículo de mezcla para especificar el controlador de lógica de negocios que usa el artículo.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

Vea tambiénSee Also

Implement a Business Logic Handler for a Merge Article (Implementar un controlador de lógica de negocios para un artículo de mezcla)Implement a Business Logic Handler for a Merge Article
Publicar datos y objetos de base de datos Publish Data and Database Objects
Change Publication and Article Properties (Cambiar las propiedades de la publicación y de los artículos)Change Publication and Article Properties
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Advanced Merge Replication Conflict Detection and ResolutionAdvanced Merge Replication Conflict Detection and Resolution