sp_changepublication (Transact-SQL)
Cambia las propiedades de una publicación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.
Sintaxis
sp_changepublication [ [ @publication = ] 'publication' ]
[ , [ @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. publication es de tipo sysname y su valor predeterminado es NULL.[ @property = ] 'property'
Es la propiedad de publicación que se va a cambiar. property es de tipo nvarchar(255).[ @value = ] 'value'
Es el valor de la nueva propiedad. value es de tipo nvarchar(255) y su valor predeterminado es NULL.Esta tabla describe las propiedades de la publicación que se pueden cambiar y las restricciones de los valores de esas propiedades.
Propiedad
Valor
Descripción
allow_anonymous
true
Se pueden crear suscripciones anónimas para la publicación indicada e immediate_sync debe ser también true. No se pueden cambiar para publicaciones punto a punto.
false
No se pueden crear suscripciones anónimas para la publicación indicada. No se pueden cambiar para publicaciones punto a punto.
allow_initialize_from_backup
true
Los suscriptores pueden inicializar una suscripción a esta publicación desde una copia de seguridad en lugar de desde una instantánea inicial. Esta propiedad no se puede cambiar para publicaciones que no sean de MicrosoftSQL Server.
false
Los suscriptores deben utilizar la instantánea inicial. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
allow_partition_switch
true
Las instrucciones ALTER TABLE...SWITCH se pueden ejecutar con la base de datos publicada. Para obtener más información, vea Replicar tablas e índices con particiones.
false
Las instrucciones ALTER TABLE...SWITCH no se pueden ejecutar con la base de datos publicada.
allow_pull
true
Se permiten suscripciones de extracción para la publicación indicada. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
false
No se permiten suscripciones de extracción para la publicación indicada. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
allow_push
true
Se permiten suscripciones de inserción para la publicación indicada.
false
No se permiten suscripciones de inserción para la publicación indicada.
allow_subscription_copy
true
Habilita la funcionalidad de copia de las bases de datos suscritas a esta publicación. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
false
Deshabilita la funcionalidad de copia de las bases de datos suscritas a esta publicación. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
alt_snapshot_folder
Ubicación de la carpeta alternativa de la instantánea.
centralized_conflicts
true
Los registros de conflictos se almacenan en el publicador. Se puede cambiar únicamente si no hay suscripciones activas. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
false
Los registros de conflictos se almacenan tanto en el publicador como en el suscriptor que provocó el conflicto. Se puede cambiar únicamente si no hay suscripciones activas. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
compress_snapshot
true
La instantánea de una carpeta de instantáneas alternativa se comprime en el formato de archivo .cab. La instantánea de la carpeta de instantáneas predeterminada no se puede comprimir.
false
La instantánea no se comprime, que es el comportamiento predeterminado para la replicación.
conflict_policy
pub wins
Directiva de resolución de conflictos para actualizar suscriptores en los que el publicador gana el conflicto. Esta propiedad se puede cambiar únicamente si no hay suscripciones activas. No es compatible con publicadores de Oracle.
sub reinit
Para actualizar los suscriptores; si se produce un conflicto, la suscripción debe renicializarse. Esta propiedad se puede cambiar únicamente si no hay suscripciones activas. No es compatible con publicadores de Oracle.
sub wins
Directiva de resolución de conflictos para actualizar suscriptores en los que el suscriptor gana el conflicto. Esta propiedad se puede cambiar únicamente si no hay suscripciones activas. No es compatible con publicadores de Oracle.
conflict_retention
int que especifica el período de retención de conflictos, en días. El período de retención predeterminado es de 14 días. 0 significa que no se necesita realizar limpieza de conflictos. No es compatible con publicadores de Oracle.
description
Entrada opcional en la que se describe la publicación.
enabled_for_het_sub
true
Habilita la publicación para que admita suscriptores que no sean de SQL Server. enabled_for_het_sub no se puede cambiar cuando hay suscripciones a la publicación. Puede ser necesario ejecutar sp_changepublication (Transact-SQL) para cumplir los siguientes requisitos antes de definir enabled_for_het_sub como true:
allow_queued_tran debe ser false.
allow_sync_tran debe ser false.
Cambiar enabled_for_het_sub a true puede modificar la configuración de publicación existente. Para obtener más información, vea Suscriptores que no son de SQL Server. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
false
La publicación no admite suscriptores que no sean de SQL Server. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
enabled_for_internet
true
Se habilita la publicación para Internet y se puede utilizar el protocolo de transferencia de archivos (FTP) para transferir los archivos de instantáneas a un suscriptor. Los archivos de sincronización de la publicación se colocan en el directorio C:\Archivos de programa\Microsoft SQL Server\MSSQL\Repldata\ftp. El valor de ftp_address no puede ser NULL. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
false
No se habilita la publicación para Internet. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
enabled_for_p2p
true
La publicación admite la replicación de punto a punto. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
Para establecer enabled_for_p2p como true, se aplican las siguientes restricciones:
allow_anonymous debe ser false
allow_dts debe ser false.
allow_initialize_from_backup debe ser true
allow_queued_tran debe ser false.
allow_sync_tran debe ser false.
enabled_for_het_sub debe ser false.
independent_agent debe ser true
repl_freq debe ser continuous
replicate_ddl debe ser 1.
false
La publicación no admite la replicación de punto a punto. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
ftp_address
Ubicación de los archivos de instantáneas de la publicación accesible a través de FTP. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
ftp_login
Nombre de usuario que se utiliza para conectar con el servicio FTP; se permite el valor ANONYMOUS. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
ftp_password
Contraseña para el nombre de usuario utilizado para conectarse al servicio FTP. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
ftp_port
Número de puerto del servicio FTP para el distribuidor. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
ftp_subdirectory
Especifica dónde se crean los archivos de instantáneas si la publicación admite la propagación de instantáneas mediante FTP. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
immediate_sync
true
Se crean o vuelven a crear archivos de sincronización para la publicación cada vez que se ejecuta el Agente de instantáneas. Los suscriptores pueden obtener los archivos de sincronización inmediatamente después de la suscripción si el Agente de instantáneas ha terminado su ejecución antes de la creación de la suscripción. Las nuevas suscripciones obtienen los últimos archivos de sincronización generados por la ejecución más reciente del Agente de instantáneas. independent_agent debe ser también true.
false
Se crean archivos de sincronización sólo si hay nuevas suscripciones. Los suscriptores no pueden recibir los archivos de sincronización después de suscribirse hasta que el Agente de instantáneas haya comenzado y terminado.
independent_agent
true
La publicación tiene su propio Agente de distribución dedicado.
false
La publicación utiliza un Agente de distribución compartido, y cada par de bases de datos de publicaciones y suscripciones tiene un agente compartido.
p2p_continue_onconflict
true
El Agente de distribución continúa procesando los cambios cuando se detecta un conflicto.
AdvertenciaSe recomienda utilizar el valor predeterminado FALSE. Cuando esta opción está establecida en TRUE, el Agente de distribución intenta converger los datos en la topología aplicando la fila en conflicto del nodo que tiene el identificador de originador más alto. Este método no garantiza la convergencia. Debe asegurarse de que la topología es coherente una vez detectado un conflicto. Para obtener más información, vea "Controlar los conflictos" en Detección de conflictos en la replicación punto a punto.false
El Agente de distribución detiene el procesamiento de los cambios cuando detecta un conflicto.
post_snapshot_script
Especifica la ubicación de un archivo de scripts de Transact-SQL que el Agente de distribución ejecutará una vez se hayan aplicado todos los demás datos y scripts de objetos replicados durante una sincronización inicial.
pre_snapshot_script
Especifica la ubicación de un archivo de scripts de Transact-SQL que el Agente de distribución ejecutará antes de que se hayan aplicado todos los demás datos y scripts de objetos replicados durante una sincronización inicial.
publish_to_ActiveDirectory
true
Este parámetro ha quedado obsoleto y sólo se admite para la compatibilidad de los scripts con versiones anteriores. Ya no es posible agregar información de las publicaciones a Microsoft Active Directory.
false
Quita la información de publicaciones de Active Directory.
queue_type
sql
Utiliza SQL Server para almacenar las transacciones. Esta propiedad se puede cambiar únicamente si no hay suscripciones activas.
NotaLa compatibilidad para utilizar Microsoft Message Queue Server ha dejado de incluirse. Si se especifica el valor msmq para value, se produce un error.repl_freq
continuous
Publica la salida de todas las transacciones basadas en el registro.
snapshot
Publica sólo los eventos de sincronización programados.
replicate_ddl
1
Las instrucciones de Lenguaje de definición de datos (DDL) que se ejecutan en el publicador se replican. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server.
0
Las instrucciones de DDL no se replican. Esta propiedad no se puede cambiar para publicaciones que no sean de SQL Server. La replicación de los cambios en el esquema no puede deshabilitarse al usar la replicación punto a punto.
replicate_partition_switch
true
Las instrucciones ALTER TABLE...SWITCH que se ejecutan con la base de datos publicada se deberían replicar en los suscriptores. Esta opción sólo es válida si allow_partition_switch se establece en TRUE. Para obtener más información, vea Replicar tablas e índices con particiones.
false
Las instrucciones ALTER TABLE...SWITCH no se deberían replicar en los suscriptores.
retention
int que representa el período de retención, en horas, para la actividad de la suscripción. Si una suscripción no ha estado activa durante el período de retención, se elimina.
snapshot_in_defaultfolder
true
Los archivos de instantánea se almacenan en la carpeta de instantáneas predeterminada. Si también se especifica alt_snapshot_folder, los archivos de instantánea se almacenan en las ubicaciones predeterminada y alternativa.
false
Los archivos de instantánea se almacenan en la ubicación alternativa especificada por alt_snapshot_folder.
status
active
Los datos de la publicación están disponibles inmediatamente para los suscriptores cuando se crea la publicación. No es compatible con publicadores de Oracle.
inactive
Los datos de la publicación no están disponibles para los suscriptores cuando se crea la publicación. No es compatible con publicadores de Oracle.
sync_method
native
Utiliza la salida de todas las tablas mediante copia masiva en modo nativo al sincronizar las suscripciones.
character
Utiliza la salida de todas las tablas mediante copia masiva en modo de carácter al sincronizar las suscripciones.
concurrent
Utiliza un programa de copia masiva en modo nativo de todas las tablas, pero no bloquea las tablas durante el proceso de generación de instantáneas. No es válido para la replicación de instantáneas.
concurrent_c
Utiliza un programa de copia masiva en modo de carácter de todas las tablas, pero no bloquea las tablas durante el proceso de generación de instantáneas. No es válido para la replicación de instantáneas.
taskid
Esta propiedad ha quedado obsoleta y ya no se admite.
NULL (predeterminado)
Devuelve la lista de valores admitidos para property.
[ @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.
El valor 1 especifica que los cambios en el artículo pueden invalidar la instantánea. Si existen suscripciones que requieran una nueva instantánea, este valor da permiso para que la instantánea existente se marque como obsoleta y se genere otra nueva.
Vea en la sección de Notas las propiedades que, si se cambian, requieren que se genere una instantánea nueva.
[@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.El valor 0 especifica que los cambios en el artículo no obligarán a reinicializar la suscripción. Si el procedimiento almacenado detecta que el cambio obligaría a reinicializar las suscripciones existentes, se producirá un error y no se realizarán cambios.
1 especifica que los cambios realizados en el artículo darán lugar a que se reinicialicen las suscripciones existentes y concede permiso para que se lleve a cabo la reinicialización.
[ @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.
Valores de código de retorno
0 (correcto) o 1 (error)
Notas
sp_changepublication se utiliza en la replicación transaccional y de instantáneas.
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.
alt_snapshot_folder
compress_snapshot
enabled_for_het_sub
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
Para ver una lista de objetos de publicación para Active Directory con el parámetro publish_to_active_directory, el objeto SQL Server debe estar ya creado en Active Directory.
Ejemplo
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
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_changepublication.
Vea también