Compartir a través de


sp_repladdcolumn (Transact-SQL)

Se aplica a: SQL Server Azure SQL Managed Instance

Agrega una columna a un artículo de tabla publicada existente. Permite agregar la nueva columna a todos los publicadores que publican esta tabla o, simplemente, agregar la columna a una publicación específica que publica la tabla. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.

Importante

Este procedimiento almacenado está en desuso y se admite para la compatibilidad con versiones anteriores. Solo se debe usar con publicadores de SQL Server 2000 (8.x) y suscriptores de republicación de SQL Server 2000 (8.x). Este procedimiento no se debe usar en columnas con tipos de datos que se introdujeron en SQL Server 2005 (9.x) y versiones posteriores.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_repladdcolumn
    [ @source_object = ] N'source_object'
    , [ @column = ] N'column'
    , [ @typetext = ] N'typetext'
    [ , [ @publication_to_add = ] N'publication_to_add' ]
    [ , [ @from_agent = ] from_agent ]
    [ , [ @schema_change_script = ] N'schema_change_script' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Argumentos

[ @source_object = ] N'source_object'

Nombre del artículo de tabla que contiene la nueva columna que se va a agregar. @source_object es nvarchar(358), sin ningún valor predeterminado.

[ @column = ] N'column'

Nombre de la columna de la tabla que se va a agregar para la replicación. @column es sysname, sin ningún valor predeterminado.

[ @typetext = ] N'typetext'

Definición de la columna que se va a agregar. @typetext es nvarchar(3000), sin ningún valor predeterminado. Por ejemplo, si se agrega la columna order_filled y es un campo de carácter único, no NULL, y tiene un valor predeterminado de N, order_filled sería el parámetro column , mientras que la definición de la columna, char(1) NOT NULL CONSTRAINT constraint_name DEFAULT 'N' sería el valor del parámetro @typetext .

[ @publication_to_add = ] N'publication_to_add'

Nombre de la publicación a la que se agrega la nueva columna. @publication_to_add es nvarchar(4000), con un valor predeterminado de all. Si alles , todas las publicaciones que contienen esta tabla se ven afectadas. Si se especifica @publication_to_add , solo esta publicación tiene agregada la nueva columna.

[ @from_agent = ] from_agent

Especifica si un agente de replicación ejecuta el procedimiento almacenado. @from_agent es int, con un valor predeterminado de 0. Un valor de 1 se usa cuando un agente de replicación ejecuta este procedimiento almacenado y, en cada otro caso, se debe usar el valor predeterminado de 0 .

[ @schema_change_script = ] N'schema_change_script'

Especifica el nombre y la ruta de acceso de un script de SQL Server que se usa para modificar los procedimientos almacenados personalizados generados por el sistema. @schema_change_script es nvarchar(4000), con un valor predeterminado de NULL. La replicación permite que los procedimientos almacenados personalizados definidos por el usuario sustituyan a uno o más de los procedimientos predeterminados utilizados en la replicación transaccional. @schema_change_script se ejecuta después de realizar un cambio de esquema en un artículo de tabla replicada mediante sp_repladdcolumny se puede usar de la siguiente manera:

  • Si los procedimientos almacenados personalizados se vuelven a generar automáticamente, @schema_change_script se pueden usar para quitar estos procedimientos almacenados personalizados y reemplazarlos por procedimientos almacenados personalizados definidos por el usuario que admiten el nuevo esquema.

  • Si los procedimientos almacenados personalizados no se vuelven a generar automáticamente, @schema_change_script se pueden usar para volver a generar estos procedimientos almacenados o para crear procedimientos almacenados personalizados definidos por el usuario.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Habilita o deshabilita la capacidad de que se invalide una instantánea. @force_invalidate_snapshot es bit, con un valor predeterminado de 1.

  • 1 especifica que los cambios realizados en el artículo pueden hacer que la instantánea no sea válida y, si es así, se concede permiso 1 para que se produzca la nueva instantánea.

  • 0 especifica que los cambios realizados en el artículo no hacen que la instantánea no sea válida.

[ @force_reinit_subscription = ] force_reinit_subscription

Habilita o deshabilita la capacidad de reinicializar la suscripción. @force_reinit_subscription es bit, con un valor predeterminado de 0.

  • 0 especifica que los cambios realizados en el artículo no hacen que se reinicialice la suscripción.

  • 1 especifica que los cambios realizados en el artículo pueden hacer que se reinicialice la suscripción y, si es así, se concede permiso para que se produzca la reinicialización de 1 la suscripción.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Permisos

Solo los miembros del rol fijo de servidor sysadmin y el rol fijo de base de datos db_owner pueden ejecutar sp_repladdcolumn.