sp_changemergepublication (Transact-SQL)
Cambia las propiedades de una publicación de combinación. Este procedimiento almacenado se ejecuta en el publicador en la base de datos de publicación.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_changemergepublication [ @publication= ] 'publication'
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Argumentos
[ @publication=\] 'publication'
Nombre de la publicación. publication es de tipo sysname y no tiene valor predeterminado.[ @property=\] 'property'
La propiedad que se va a cambiar para la publicación especificada. property es de tipo sysname y puede tener uno de los valores que se muestran en la tabla siguiente.[ @value=\] 'value'
El nuevo valor de la propiedad especificada. value es de tipo nvarchar(255) y puede tener uno de los valores que se muestran 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 admiten las 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. Éste es el comportamiento predeterminado.
false
Los datos de la partición antigua se dejan en el suscriptor, donde los cambios realizados en estos datos del 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 indicada.
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_subscriber_initiated_snapshot
true
El suscriptor puede iniciar el proceso de instantáneas.
false
El suscriptor no puede iniciar el proceso de instantáneas.
allow_subscription_copy
true
Puede copiar las bases de datos de suscripciones suscritas a esta publicación.
false
No puede copiar las bases de datos de suscripciones suscritas 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 modelo 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 por HTTPS.
alt_snapshot_folder
Especifica la ubicación de la carpeta alternativa de 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, no se comprime la instantánea. 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 admiten para los suscriptores de SQL Server Compact.
both
Los registros de conflictos se almacenan tanto en el publicador como en el suscriptor.
conflict_retention
Valor int que especifica el período de retención, expresado en días, durante el que se conservan los conflictos. Si el valor de conflict_retention se establece en 0, no se necesita la 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 directorio C:\Archivos de programa\Microsoft SQL Server\MSSQL\Repldata\ftp.
false
No se habilita la publicación 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 un conjunto de cambios que se entregan a un publicador o a un 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 se optimiza y las particiones que se envían a todos 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
Valor int que representa el número máximo de procesos de mezcla simultáneos que se pueden ejecutar para una publicación. Si es 0, no hay límite. Si se programa un número de procesos de mezcla 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.
max_concurrent_dynamic_snapshots
Valor int que representa el número máximo de sesiones de instantáneas para generar una instantánea de datos filtrados que se pueda ejecutar simultáneamente con una publicación de combinación que utilice filtros de fila con parámetros. Si es 0, 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 ubicación de archivo .sql. 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 ubicación de archivo .sql. 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
90RTM
SQL Server 2005
publish_to_activedirectory
true
Este parámetro ha quedado desusado y solo se admite por compatibilidad con versiones anteriores de scripts. Ya no es posible agregar información de las publicaciones 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 de DDL no se replican.
retention
Valor int que representa el número de unidades retention_period_unit de la publicación especificada para las que se guardan los cambios. Si la suscripción no está sincronizada en el período de retención y se han quitado, por medio de una operación de limpieza en el distribuidor, los cambios pendientes que podía haber recibido, la suscripción expira y es necesario reinicializarla. 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 combinación tiene un plazo de gracia de 24 horas para adaptarse a los suscriptores de las 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áneas se almacenan en la ubicación alternativa que se especifica mediante 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
No está disponible la instantánea para la publicación.
status
active
La publicación está en estado activo.
inactive
La publicación está en estado inactivo.
sync_mode
native o
bcp native
La salida del programa de copia masiva de todas las tablas en modo nativo se utiliza para la instantánea inicial.
character
o bcp character
La salida del programa de copia masiva de todas las tablas en modo de carácter se utiliza para la instantánea inicial, que se necesita para todos los suscriptores que no lo son de SQL Server.
use_partition_groups
[!NOTA]
Después de utilizar partition_groups, si revierte al uso de setupbelongs y establece use_partition_groups=false en changemergearticle, esto podría no reflejarse correctamente una vez tomada una instantánea. Los desencadenadores que genera una instantánea son conformes con los grupos de particiones.
La solución alternativa en este escenario es establecer el estado en Inactive, modificar use_partition_groups y, a continuación, establecer el estado en Active.
true
La publicación utiliza particiones previamente calculadas.
false
La publicación no utiliza particiones previamente calculadas.
validate_subscriber_info
Muestra las funciones que se utilizan para recuperar información del suscriptor. Después, valida los criterios de filtro dinámico que se están utilizando para que el suscriptor compruebe que la información se está dividiendo de un modo coherente.
web_synchronization_url
Valor predeterminado de la URL de Internet utilizada para la sincronización web.
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.El valor 0 especifica que los cambios en la publicación no invalidan 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 al cambiar la publicación, se podría invalidar la instantánea. Si hay suscripciones existentes que requieran una nueva instantánea, se da permiso para que la instantánea existente se marque como obsoleta y se genere otra nueva.
Vea en la sección de Observaciones las propiedades que, si 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 de tipo bit y su valor predeterminado es 0.El valor 0 especifica que los cambios en la publicación no requieren que se reinicialicen las suscripciones. 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.
El valor 1 especifica que, si se cambia la publicación, se reinicializarán las suscripciones existentes, y concede permiso para que se lleve a cabo la reinicialización.
Vea en la sección de Notas las propiedades que, si se cambian, requieren que se reinicialicen todas las suscripciones existentes.
Valores de código de retorno
0 (correcto) o 1 (error)
Comentarios
sp_changemergepublication se utiliza en la replicación de mezcla.
Si se cambian las propiedades siguientes, se requiere que se genere una nueva instantánea. Debe especificar el valor 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 (en 80SP3 únicamente)
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 el valor 1 para el parámetro force_reinit_subscription.
dynamic_filters
validate_subscriber_info
Para ver una lista de objetos de publicación para Active Directory con el parámetro publish_to_active_directory, el objeto SQL Server ya debe estar creado en Active Directory.
Ejemplo
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2012]
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 del rol fijo de base de datos db_owner pueden ejecutar el procedimiento sp_changemergepublication.
Vea también
Referencia
sp_addmergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Procedimientos almacenados de replicación (Transact-SQL)
Conceptos
Ver y modificar propiedades de publicación
Cambiar las propiedades de la publicación y de los artículos