sp_changemergepublication (Transact-SQL)
Se aplica a: SQL Server
Cambia las propiedades de una publicación de combinación. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
Argumentos
[ @publication = ] N'publication'
Nombre de la publicación. @publication es sysname, sin ningún valor predeterminado.
[ @property = ] N'property'
La propiedad que se va a cambiar para la publicación especificada. @property es sysname y puede ser uno de los valores enumerados en la tabla siguiente.
[ @value = ] N'value'
El nuevo valor de la propiedad especificada. @value es nvarchar(255), con un valor predeterminado de NULL
.
y pueden ser uno de los valores enumerados en la tabla siguiente.
Esta tabla describe las propiedades de la publicación que se pueden cambiar, así como las restricciones de los valores de esas propiedades.
Propiedad | Valor | Descripción |
---|---|---|
allow_anonymous |
true |
Se admiten las suscripciones anónimas. |
false |
No se permiten suscripciones anónimas. | |
allow_partition_realignment |
true |
Las eliminaciones se envían al suscriptor para reflejar los resultados de un cambio en la partición mediante la eliminación de los datos que han dejado de formar parte de la partición del suscriptor. Este es el comportamiento predeterminado. |
false |
Los datos de una partición antigua se dejan en el suscriptor, donde los cambios realizados en estos datos en el publicador no se replican en este suscriptor. En cambio, los cambios realizados en el suscriptor se replican en el publicador. Esto sirve para conservar los datos de una partición antigua en una suscripción cuando es necesario que los datos estén accesibles con fines históricos. | |
allow_pull |
true |
Se permiten suscripciones de extracción para la publicación indicada. |
false |
No se permiten suscripciones de extracción para la publicación especificada. | |
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 especificada. | |
allow_subscriber_initiated_snapshot |
true |
El suscriptor puede iniciar el proceso de instantáneas. |
false |
El suscriptor no puede iniciar el proceso de instantánea. | |
allow_subscription_copy |
true |
Puede copiar las bases de datos de suscripciones suscritas a esta publicación. |
false |
No se pueden copiar las bases de datos de suscripción que se suscriben a esta publicación. | |
allow_synctoalternate |
true |
Permite que un asociado de sincronización alternativo se sincronice con este publicador. |
false |
No permite que un asociado de sincronización alternativo se sincronice con este publicador. | |
allow_web_synchronization |
true |
Las suscripciones se pueden sincronizar por HTTPS. |
false |
Las suscripciones no se pueden sincronizar a través de HTTPS. | |
alt_snapshot_folder |
Especifica la ubicación de la carpeta alternativa para la instantánea. | |
automatic_reinitialization_policy |
1 |
Los cambios se cargan desde el suscriptor antes de reinicializar la suscripción. |
0 |
La suscripción se reinicializa sin cargar primero los cambios. | |
centralized_conflicts |
true |
Todos los registros de conflictos se almacenan en el publicador. Si cambia esta propiedad, se deben reinicializar los suscriptores existentes. |
false |
Los registros de conflictos se almacenan en el servidor que perdió en la resolución de conflictos. Si cambia esta propiedad, se deben reinicializar los suscriptores existentes. | |
compress_snapshot |
true |
La instantánea de una carpeta de instantáneas alternativa se comprime en formato CAB. La instantánea de la carpeta de instantáneas predeterminada no se puede comprimir. Para cambiar esta propiedad, se requiere una instantánea nueva. |
false |
De forma predeterminada, la instantánea no está comprimida. Para cambiar esta propiedad, se requiere una instantánea nueva. | |
conflict_logging |
publisher |
Los registros de conflictos se almacenan en el publicador. |
subscriber |
Los registros de conflictos se almacenan en el suscriptor que causó el conflicto. No se admite para suscriptores de SQL Server Compact. | |
both |
Los registros de conflictos se almacenan tanto en el publicador como en el suscriptor. | |
conflict_retention |
Un valor int que especifica el período de retención, en días, para el que se conservan los conflictos. Establecer conflict_retention en 0 significa que no se necesita ninguna limpieza de conflictos. |
|
description |
Descripción de la publicación. | |
dynamic_filters |
true |
La publicación se filtra según una cláusula dinámica. |
false |
La publicación no se filtra dinámicamente. | |
enabled_for_internet |
true |
La publicación para Internet está habilitada. El protocolo de transferencia de archivos (FTP) se puede utilizar para transferir los archivos de instantáneas a un suscriptor. Los archivos de sincronización de la publicación se colocan en el C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp directorio . |
false |
La publicación no está habilitada para Internet. | |
ftp_address |
Dirección de red del servicio FTP para el distribuidor. Especifica la ubicación de los archivos de instantáneas de la publicación. | |
ftp_login |
Nombre de usuario que se usa para conectarse al servicio FTP. | |
ftp_password |
Contraseña de usuario que se usa para conectarse al servicio FTP. | |
ftp_port |
Número de puerto del servicio FTP para el distribuidor. Especifica el número del puerto TCP del sitio FTP donde se almacenan los archivos de instantáneas de la publicación. | |
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. | |
generation_leveling_threshold |
int | Especifica el número de cambios contenidos en una generación. Una generación es una colección de cambios que se entregan a un publicador o suscriptor. |
keep_partition_changes |
true |
La sincronización se optimiza y solo se ven afectados los suscriptores que tienen filas en las particiones que han cambiado. Para cambiar esta propiedad, se requiere una instantánea nueva. |
false |
La sincronización no está optimizada y las particiones que se envían a los suscriptores se comprueban cuando los datos cambian en una partición. Para cambiar esta propiedad, se requiere una instantánea nueva. | |
max_concurrent_merge |
Un valor int que representa el número máximo de procesos de combinación simultáneos que se pueden ejecutar en una publicación. Si es 0, no hay límite. Si hay más de este número de procesos de combinación programados para ejecutarse al mismo tiempo, el exceso de trabajos se coloca en una cola hasta que finaliza un proceso currentlmerge. | |
max_concurrent_dynamic_snapshots |
Un valor int que representa el número máximo de sesiones de instantáneas para generar una instantánea de datos filtrada que se puede ejecutar simultáneamente en una publicación de combinación que usa filtros de fila con parámetros. Si 0 es , no hay ningún límite. Si se programa un número de procesos de instantáneas superior a éste para que se ejecuten a la vez, el exceso de trabajos se coloca en una cola y se espera hasta que termine de procesarse la mezcla que se está ejecutando. |
|
post_snapshot_script |
Especifica un puntero a una .sql ubicación de archivo. El Agente de distribución o el Agente de mezcla ejecutan el script posterior a la instantánea después de que se aplique el resto de scripts de objetos replicados y datos durante la sincronización inicial. Para cambiar esta propiedad, se requiere una instantánea nueva. |
|
pre_snapshot_script |
Especifica un puntero a una .sql ubicación de archivo. El Agente de mezcla ejecuta el script previo a la instantánea antes que cualquiera de los scripts de objetos replicados al aplicar la instantánea en un suscriptor. Para cambiar esta propiedad, se requiere una instantánea nueva. |
|
publication_compatibility_level |
100RTM |
SQL Server 2008 (10.0.x) |
90RTM |
SQL Server 2005 (9.x) | |
publish_to_activedirectory |
true |
Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Ya no es posible agregar información de publicación a Active Directory. |
false |
Quita la información de publicaciones de Active Directory. | |
replicate_ddl |
1 |
Las instrucciones de lenguaje de definición de datos (DDL) que se ejecutan en el publicador se replican. |
0 |
Las instrucciones DDL no se replican. | |
retention |
Valor int que representa el número de retention_period_unit unidades para las que se guardarán los cambios de la publicación especificada. Si la suscripción no está sincronizada dentro del período de retención y los cambios pendientes que recibió se quitaron mediante una operación de limpieza en el distribuidor, la suscripción expira y se debe reinicializar. El período de retención máximo admitido es el número de días entre el 31 de diciembre de 9999 y la fecha actual.Nota: El período de retención para las publicaciones de mezcla tiene un período de gracia de 24 horas para alojar a los suscriptores en diferentes zonas horarias. |
|
retention_period_unit |
day |
El período de retención se especifica en días. |
week |
El período de retención se especifica en semanas. | |
month |
El período de retención se especifica en meses. | |
year |
El período de retención se especifica en años. | |
snapshot_in_defaultfolder |
true |
Los archivos de instantánea se almacenan en la carpeta de instantáneas predeterminada. |
false |
Los archivos de instantánea se almacenan en la ubicación alternativa especificada por alt_snapshot_folder . Esta combinación especifica que los archivos de instantáneas se almacenan tanto en la ubicación predeterminada como en la alternativa. |
|
snapshot_ready |
true |
Está disponible la instantánea para la publicación. |
false |
La instantánea de la publicación no está disponible. | |
status |
active |
La publicación está en estado activo. |
inactive |
La publicación está en estado inactivo. | |
sync_mode |
native obcp native |
La salida del programa de copia masiva de todas las tablas en modo nativo se utiliza para la instantánea inicial. |
character o bien bcp character |
La salida del programa de copia masiva en modo de caracteres de todas las tablas se usa para la instantánea inicial, que es necesaria para todos los suscriptores que no son de SQL Server. | |
use_partition_groups Nota: Después de usar grupos de particiones, si se va a revertir al uso setupbelongs de y se establece use_partition_groups=false en changemergearticle , es posible que esto no se refleje correctamente después de tomar una instantánea. Los desencadenadores generados por instantánea son compatibles con los grupos de particiones.La solución alternativa a este escenario es establecer el estado en Inactivo, modificar y use_partition_groups , a continuación, establecer el estado en Activo. |
true |
La publicación utiliza particiones previamente calculadas. |
false |
La publicación no usa particiones precalutadas. | |
validate_subscriber_info |
Muestra las funciones que se utilizan para recuperar información del suscriptor. A continuación, valida los criterios de filtrado dinámico que se usan para el suscriptor para comprobar que la información se particiona de forma coherente. | |
web_synchronization_url |
Valor predeterminado de la URL de Internet utilizada para la sincronización web. | |
NULL (valor 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 podría invalidar una instantánea existente. @force_invalidate_snapshot es bit, con un valor predeterminado de 0
.
0
especifica que cambiar la publicación no invalida 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 cambiar la publicación podría invalidar la instantánea. Si hay suscripciones existentes que requieren una nueva instantánea, concede permiso para que la instantánea existente se marque como obsoleta y para que se genere una nueva instantánea.
Consulte la sección Comentarios de las propiedades que, cuando se cambian, requieren que se genere una nueva instantánea.
[ @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 bit, con un valor predeterminado de 0
.
0
especifica que cambiar la publicación no requiere que se reinicialicen las suscripciones. Si el procedimiento almacenado detecta que el cambio requiere que se reinicialicen las suscripciones existentes, se produce un error y no se realizan cambios.1
significa que los cambios en la publicación reinicializan las suscripciones existentes y concede permiso para que se produzca la reinicialización de la suscripción.
Consulte la sección Comentarios de las propiedades que, cuando se cambian, requieren que se reinicialicen todas las suscripciones existentes.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
sp_changemergepublication
se usa en la replicación de mezcla.
El cambio de las siguientes propiedades requiere que se genere una nueva instantánea. Debe especificar un valor de 1
para el parámetro @force_invalidate_snapshot .
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level
(solo para80SP3
)pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
Al cambiar las propiedades siguientes, se requiere que se reinicialicen las suscripciones existentes. Debe especificar un valor de 1
para el parámetro @force_reinit_subscription .
dynamic_filters
validate_subscriber_info
Para enumerar objetos de publicación en Active Directory mediante publish_to_active_directory
, el objeto de SQL Server ya debe crearse en Active Directory.
Ejemplos
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Permisos
Solo los miembros del rol fijo de servidor sysadmin o db_owner rol fijo de base de datos pueden ejecutar sp_changemergepublication
.