Cómo ver y modificar propiedades de artículo (programación de la replicación con Transact-SQL)

Se pueden modificar los artículos y devolver sus propiedades mediante programación con los procedimientos almacenados de replicación. Los procedimientos almacenados que se usen dependerán del tipo de publicación a la que pertenece el artículo.

Para ver las propiedades de un artículo que pertenece a una publicación transaccional o de instantáneas

  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. Si no especifica @article, se devolverá información para todos los artículos de la publicación.

  2. Ejecute sp_helparticlecolumns para que los artículos de tabla muestren todas las columnas disponibles en la tabla base.

Para modificar las propiedades de un artículo que pertenece a una publicación transaccional o de instantáneas

  • 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.

    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. Para obtener más información acerca de las propiedades que, cuando se cambian, requieren una nueva instantánea o una reinicialización, vea Cambiar las propiedades de la publicación y de los artículos.

Para ver las propiedades de un artículo que pertenece a una publicación de mezcla

  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. Si no especifica estos parámetros, se devolverá información para todos los artículos de una publicación o en el publicador.

  2. Ejecute sp_helpmergearticlecolumn para que los artículos de tabla muestren todas las columnas disponibles en la tabla base.

Para modificar las propiedades de un artículo que pertenece a una publicación de mezcla

  • 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.

    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. Para obtener más información acerca de las propiedades que, cuando se cambian, requieren una nueva instantánea o una reinicialización, vea Cambiar las propiedades de la publicación y de los artículos.

Ejemplo

Este ejemplo de replicación transaccional devuelve las propiedades del artículo publicado.

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

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

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

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

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

Este ejemplo de replicación de mezcla cambia los valores de detección de conflicto para un artículo 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 [AdventureWorks2008R2]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO