sp_repladdcolumn (Transact-SQL)
Agrega una columna a un artículo de tabla existente que ha sido publicado. 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 publicaciones.
Importante: |
---|
Este procedimiento almacenado ya no se utiliza; se admite principalmente por compatibilidad con versiones anteriores. Sólo se puede utilizar con publicadores de Microsoft SQL Server 2000 y suscriptores de SQL Server 2000 que se pueden volver a publicar. |
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_repladdcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' ]
[ , [ @typetext = ] 'typetext' ]
[ , [ @publication_to_add = ] 'publication_to_add' ]
[ , [ @from_agent = ] from_agent ]
[ , [ @schema_change_script = ] 'schema_change_script' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Argumentos
- [ @source_object=] 'source_object'
Es el nombre del artículo de tabla que contiene la nueva columna que se va a agregar. source_object es de tipo nvarchar(358) y no tiene ningún valor predeterminado.
- [ @column=] 'column'
Es el nombre de la columna de la tabla que se va a agregar para réplica. column es de tipo sysname y no tiene ningún valor predeterminado.
- [ @typetext=] 'typetext'
Es la definición de la columna que se va a agregar. typetext es de tipo nvarchar(3000) y no tiene ningún valor predeterminado. Por ejemplo, si se va a agregar la columna order_filled y es un campo de un carácter, no NULL, y tiene el valor predeterminado 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=] 'publication_to_add'
Es el nombre de la publicación a la que se agrega la nueva columna. publication_to_add es de tipo nvarchar(4000) y su valor predeterminado es ALL. Si el valor es ALL, todas las publicaciones que contienen esta tabla se verán afectadas. Si se especifica publication_to_add, sólo se agregará la nueva columna a esta publicación.
- [ @from_agent= ] from_agent
Indica si un agente de réplica está ejecutando el procedimiento almacenado. from_agent es de tipo int y su valor predeterminado es 0; el valor 1 se utiliza cuando un agente de réplica está ejecutando el procedimiento almacenado y, en los demás casos, se debe utilizar el valor predeterminado 0.
[ @schema_change_script=] 'schema_change_script'
Especifica el nombre y la ruta de acceso de una secuencia de comandos de SQL Server utilizada para modificar los procedimientos almacenados personalizados generados por el sistema. schema_change_script es de tipo nvarchar(4000) y su valor predeterminado es NULL. La réplica permite que los procedimientos almacenados personalizados definidos por el usuario sustituyan a uno o más de los procedimientos predeterminados utilizados en la réplica transaccional. schema_change_script se ejecuta después de que se realice un cambio de esquema en un artículo de tabla replicado mediante sp_repladdcolumn; puede utilizarse para realizar una de las operaciones siguientes:- Si los procedimientos almacenados personalizados se generan automáticamente, schema_change_script puede utilizarse para quitar esos procedimientos almacenados personalizados y sustituirlos por procedimientos almacenados personalizados definidos por el usuario que admitan el nuevo esquema.
- Si los procedimientos almacenados personalizados no se vuelven a generar automáticamente, schema_change_scriptpuede utilizarse 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 posibilidad de invalidar una instantánea. force_invalidate_snapshot es de tipo bit y su valor predeterminado es 1.El valor 1 indica que es posible que cambios en el artículo hagan que la instantánea no sea válida y, en tal caso, este valor 1 concede el permiso necesario para que se produzca la nueva instantánea.
El valor 0 especifica que los cambios en el artículo no invalidarán la instantánea.
[ @force_reinit_subscription = ] force_reinit_subscription
Habilita o deshabilita la capacidad de reinicializar la suscripción. force_reinit_subscription es de tipo bit y su valor predeterminado es 0.El valor 0 especifica que los cambios en el artículo no reinicializarán la suscripción.
El valor 1 significa que los cambios en un artículo pueden hacer que la suscripción se reinicialice y, en tal caso, este valor 1 concede el permiso necesario para que se reinicialice la suscripción.
Notas
sp_repladdcolumn ya no se utiliza; sólo se suministra por compatibilidad con versiones anteriores. Se puede agregar una columna a un artículo de tabla replicada a través de la ejecución de comandos de lenguaje de definición de datos (DDL) en la tabla publicada. La réplica automáticamente replica estos comandos DDL siempre que se haya habilitado la réplica DDL. Para obtener más información, vea Realizar cambios de esquema en las bases de datos de publicaciones.
sp_repladdcolumn todavía se requiere para propagar cambios DDL de suscriptores de republicación en ejecución en una versión anterior de suscriptores de SQL Server 2000.
sp_repladdcolumn se utiliza en todos los tipos de réplica.
Si utiliza sp_repldropcolumn y realiza un cambio de esquema en un artículo que pertenece a una publicación que utiliza un paquete de Servicios de transformación de datos (DTS), el cambio de esquema no se propaga al suscriptor y los procedimientos personalizados para INSERT, UPDATE o DELETE no se vuelven a generar en los suscriptores. Será necesario que el usuario vuelva a generar el paquete DTS manualmente y realice el cambio de esquema correspondiente en los suscriptores. Si no se aplica la actualización de esquema, es posible que el Agente de distribución no pueda aplicar las modificaciones siguientes. Antes de realizar un cambio de esquema, asegúrese de que no haya transacciones pendientes de entrega.
Cuando se asigna a typetext un valor predeterminado que representa una función no determinista (por ejemplo, 'datetime not null default getdate()'
), se puede producir una no convergencia tras la adición de la nueva columna dado que la función se ejecuta en el suscriptor para cargar un valor predeterminado en la columna.
Se filtran las columnas calculadas y de marca de hora en las publicaciones en modo de carácter. Si agrega una columna calculada o de marca de hora mediante sp_repladdcolumn, las suscripciones a dichas publicaciones no reciben esta nueva columna.
Importante: |
---|
Se debe realizar una copia de seguridad de la base de datos de publicaciones después de ejecutar sp_repladdcolumn. Si no se hace, se puede producir un error de mezcla después de restaurar la base de datos de publicaciones. |
Permisos
Sólo los miembros de la función fija de servidor sysadmin y de la función fija de base de datos db_owner pueden ejecutar sp_repladdcolumn.
Valores de código de retorno
0 (correcto) o 1 (error)
Vea también
Referencia
Procedimientos almacenados del sistema (Transact-SQL)
Otros recursos
Características que ya no se utilizan en la réplica de SQL Server 2005