sp_changearticle (Transact-SQL)

Actualizado: 14 de abril de 2006

Cambia las propiedades de un artículo en una publicación transaccional o de instantáneas. 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_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación que contiene el artículo. publication es de tipo sysname y su valor predeterminado es NULL.
  • [ @article=] 'article'
    Es el nombre del artículo cuya propiedad se va a cambiar. article es de tipo sysname y su valor predeterminado es NULL.
  • [ @property=] 'property'
    Es una propiedad del artículo que se va a cambiar. property es de tipo nvarchar(100).
  • [ @value=] 'value'
    Es el nuevo valor de la propiedad del artículo. value es de tipo nvarchar(255).

    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 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 especifica que los cambios realizados en el artículo 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 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 especifica que los cambios que se realicen en el artículo harán que se reinicialicen las suscripciones existentes y concede permiso para que la reinicialización se lleve a cabo.

    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.

  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA] publisher no debería utilizarse cuando se cambien las propiedades de artículo de un publicador de SQL Server.

Notas

sp_changearticle se utiliza en la réplica de instantáneas y transaccional.

Cuando un artículo pertenece a una publicación que admite la réplica transaccional de punto a punto, sólo se pueden cambiar las propiedades description, ins_cmd, upd_cmd y del_cmd.

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

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

Si se cambia alguna de las siguientes propiedades, es necesario reinicializar las suscripciones existentes y especificar el valor 1 para el parámetro force_reinit_subscription.

  • del_cmd
  • dest_table
  • destination_owner
  • filter
  • ins_cmd
  • status
  • upd_cmd

En una publicación existente, se puede utilizar sp_changearticle para cambiar un artículo sin tener que quitar y crear de nuevo toda la publicación.

[!NOTA] Al cambiar el valor de schema_option, el sistema no realiza una actualización bit a bit. Esto significa que al establecer schema_option mediante sp_changearticle es posible desactivar la configuración de bits existente. 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_helparticle.

Opciones de esquema válidas

En la tabla siguiente se describen los valores permitidos de schema_option en función del tipo de réplica (valores de la parte superior) y el tipo de artículo (valores de la primera columna).

Tipo de artículo Tipo de réplica  

 

Transaccional

Instantánea

logbased

Todas las opciones

Todas las opciones excepto 0x02

logbased manualfilter

Todas las opciones

Todas las opciones excepto 0x02

logbased manualview

Todas las opciones

Todas las opciones excepto 0x02

indexed view logbased

Todas las opciones

Todas las opciones excepto 0x02

indexed view logbased manualfilter

Todas las opciones

Todas las opciones excepto 0x02

indexed view logbased manualview

Todas las opciones

Todas las opciones excepto 0x02

indexed view logbase manualboth

Todas las opciones

Todas las opciones excepto 0x02

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

serialized proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 y 0x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 y 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 y 0x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, and 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, and 0x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 y 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 y 0x80000000

[!NOTA] Para las publicaciones de actualización en cola, se debe habilitar el valor 0x80 de schema_option. Los valores admitidos de schema_option para publicaciones que no son de SQL Server son: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 y 0x4000.

Permisos

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

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplo

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

Vea también

Referencia

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (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 agregado valores que faltaban en la propiedad type.
  • Se han documentado restricciones adicionales en el establecimiento de la opción 0x20 del parámetro schema_option.
Contenido modificado:
  • Se han aclarado las descripciones de la propiedad type.
  • Se ha corregido el tamaño del parámetro property.