sp_changemergearticle (Transact-SQL)

Actualizado: 14 de abril de 2006

Cambia las propiedades de un artículo de mezcla. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación en la que existe el artículo. publication es de tipo sysname y no tiene ningún valor predeterminado.
  • [ @article=] 'article'
    Es el nombre del artículo que se va a cambiar. article es de tipo sysname y no tiene ningún valor predeterminado.
  • [ @property=] 'property'
    Es la propiedad que se va a cambiar para el artículo y la publicación especificados. property es de tipo nvarchar(30) y puede tener uno de los valores que muestra la tabla.
  • [ @value=] 'value'
    Es el nuevo valor de la propiedad especificada. value es de tipo nvarchar(1000) y puede tener uno de los valores que muestra la tabla.

    En esta tabla se describen las propiedades de los artículos y los valores de esas propiedades.

    Propiedad

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Confirma que la acción realizada por este procedimiento almacenado puede invalidar una instantánea existente. force_invalidate_snapshot es de tipo bit y su valor predeterminado es 0.

    0 especifica que los cambios en el artículo de mezcla no invalidarán la instantánea. Si el procedimiento almacenado detecta que el cambio requiere una nueva instantánea, se producirá un error y no se realizarán cambios.

    1 indica que los cambios realizados en el artículo de mezcla pueden invalidar la instantánea y, si hay suscripciones existentes que requieran una nueva instantánea, concede permiso para marcar como obsoleta la instantánea existente y generar una nueva.

    Vea la sección Notas para obtener información acerca de las propiedades que requieren la generación de una nueva instantánea cuando se cambian.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Confirma que la acción realizada por este procedimiento almacenado puede requerir la reinicialización de las suscripciones existentes. force_reinit_subscription es de tipo bit y su valor predeterminado es 0.

    0 especifica que los cambios en el artículo de mezcla no harán que se reinicialice la suscripción. Si el procedimiento almacenado detecta que el cambio requiere la reinicialización de las suscripciones existentes, se producirá un error y no se realizarán cambios.

    1 indica que los cambios realizados en el artículo de mezcla harán que se reinicialicen las suscripciones existentes y concede permiso para que se lleve a cabo la reinicialización.

    Vea la sección Notas para obtener información acerca de las propiedades que, cuando cambian, requieren la reinicialización de todas las suscripciones existentes.

Notas

sp_changemergearticle se utiliza en la réplica de mezcla.

Puesto que sp_changemergearticle se utiliza para cambiar las propiedades de artículos que se especificaron inicialmente con sp_addmergearticle, vea sp_addmergearticle para obtener más información acerca de estas propiedades.

Si se cambian las siguientes propiedades, es necesario generar una instantánea nueva y especificar el valor 1 para el parámetro force_invalidate_snapshot:

  • check_permissions
  • column_tracking
  • destination_owner
  • pre_creation_cmd
  • schema_options
  • subset_filterclause

Si se cambian las siguientes propiedades, será necesario reinicializar las suscripciones existentes y especificar el valor 1 para el parámetro force_reinit_subscription:

  • check_permissions
  • column_tracking
  • destination_owner
  • subscriber_upload_options
  • subset_filterclause

Si especifica el valor 3 en partition_options, los metadatos se limpian siempre que se ejecuta el Agente de mezcla y la instantánea con particiones caduca más rápidamente. Al utilizar esta opción, debe considerar la habilitación de la instantánea con particiones solicitada por el suscriptor. Para obtener más información, vea Instantáneas para publicaciones de mezcla con filtros con parámetros.

Al establecer la propiedad column_tracking, si la tabla se ha publicado ya en otras publicaciones de mezcla, el seguimiento por columna debe ser el mismo que el valor utilizado por los artículos existentes basados en esta tabla. Este parámetro es específico solamente de los artículos de tabla.

Si varias publicaciones publican artículos basados en la misma tabla subyacente, el cambio de la propiedad delete_tracking o la propiedad compensate_for_errors de un artículo hace que los mismos cambios se realicen en los otros artículos que se basan en la misma tabla.

Si la cuenta de inicio de sesión o usuario del publicador que utiliza el proceso de mezcla no dispone de los permisos de tabla correctos, los cambios no válidos se registran como conflictos.

Al cambiar el valor de schema_option, el sistema no ejecuta una actualización bit a bit. Esto significa que cuando se establece schema_option con sp_changemergearticle, los valores de los bits existentes pueden desactivarse. Para conservar los valores existentes, debe ejecutar una operación & (AND bit a bit) entre el valor que está estableciendo y el valor actual de schema_option, que puede determinarse ejecutando sp_helpmergearticle.

Tabla de opciones de esquema válidas

En la tabla siguiente se describen los valores permitidos de schema_optionen función del tipo de artículo.

Tipo de artículo Valores de las opciones de esquema

func schema only

0x01 y 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 y 0x200000

proc schema only

0x01 y 0x2000

table

Todas las opciones.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 y 0x200000

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_changemergearticle.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplo

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

Vea también

Referencia

sp_addmergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Procedimientos almacenados de réplica (Transact-SQL)

Otros recursos

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
Cambiar las propiedades de la publicación y de los artículos

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido modificado:
  • Se ha actualizado la descripción del valor 0x20000000 de la propiedad schema_option.

5 de diciembre de 2005

Contenido nuevo:
  • Se han documentado restricciones adicionales para establecer la opción 0x20 del parámetro schema_option.
Contenido modificado:
  • Se ha actualizado la información sobre el valor de la opción de esquema predeterminado en artículos de tabla.