sp_addmergearticle (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíInstancia administrada de Azure SQL

Agrega un artículo a una publicación de combinación existente. Este procedimiento almacenado se ejecuta en el Publisher de la base de datos de publicación.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

  
sp_addmergearticle [ @publication = ] 'publication'   
        , [ @article = ] 'article'   
        , [ @source_object = ] 'source_object'   
    [ , [ @type = ] 'type' ]   
    [ , [ @description = ] 'description' ]   
    [ , [ @column_tracking = ] 'column_tracking' ]   
    [ , [ @status = ] 'status' ]   
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ]   
    [ , [ @creation_script = ] 'creation_script' ]   
    [ , [ @schema_option = ] schema_option ]   
    [ , [ @subset_filterclause = ] 'subset_filterclause' ]   
    [ , [ @article_resolver = ] 'article_resolver' ]   
    [ , [ @resolver_info = ] 'resolver_info' ]   
    [ , [ @source_owner = ] 'source_owner' ]   
    [ , [ @destination_owner = ] 'destination_owner' ]   
    [ , [ @vertical_partition = ] 'vertical_partition' ]   
    [ , [ @auto_identity_range = ] 'auto_identity_range' ]   
    [ , [ @pub_identity_range = ] pub_identity_range ]   
    [ , [ @identity_range = ] identity_range ]   
    [ , [ @threshold = ] threshold ]   
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ]   
    [ , [ @destination_object = ] 'destination_object' ]   
    [ , [ @allow_interactive_resolver = ] 'allow_interactive_resolver' ]   
    [ , [ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' ]   
    [ , [ @check_permissions = ] check_permissions ]   
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]  
    [ , [ @published_in_tran_pub = ] 'published_in_tran_pub' ]  
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]  
    [ , [ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' ]  
    [ , [ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' ]  
    [ , [ @partition_options = ] partition_options ]  
    [ , [ @processing_order = ] processing_order ]  
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]  
    [ , [ @identityrangemanagementoption = ] 'identityrangemanagementoption' ]  
    [ , [ @delete_tracking = ] delete_tracking ]  
    [ , [ @compensate_for_errors = ] 'compensate_for_errors' ]   
    [ , [ @stream_blob_columns = ] 'stream_blob_columns' ]  

Argumentos

[ @publication = ] 'publication' Es el nombre de la publicación que contiene el artículo. publication es sysname, sin ningún valor predeterminado.

[ @article = ] 'article' Es el nombre del artículo. El nombre debe ser único en la publicación. article es sysname, sin ningún valor predeterminado. el artículo debe estar en el equipo local que ejecuta Microsoft SQL Server y debe cumplir las reglas de los identificadores.

[ @source_object = ] 'source_object' Es el objeto de base de datos que se va a publicar. source_object es sysname, sin ningún valor predeterminado. Para obtener más información sobre los tipos de objetos que se pueden publicar mediante la replicación de mezcla, vea Publicar datos y objetos de base de datos.

[ @type = ] 'type' Es el tipo de artículo. type es sysname, con un valor predeterminado de table y puede ser uno de los siguientes valores.

Valor Descripción
table (valor predeterminado) Tabla con esquema y datos. La replicación supervisa la tabla para determinar los datos que se van a replicar.
func schema only Función con solo esquema.
solo esquema de vista indizada Vista indizada con solo esquema.
proc schema only Procedimiento almacenado con solo esquema.
solo esquema de sinónimos Sinónimo con solo esquema.
view schema only Vista con solo esquema.

[ @description = ] 'description' Es una descripción del artículo. description es nvarchar(255), con un valor predeterminado de NULL.

[ @column_tracking = ] 'column_tracking' Es la configuración del seguimiento de nivel de columna. column_tracking es nvarchar(10), con un valor predeterminado de FALSE. True activa el seguimiento de columnas. false desactiva el seguimiento de columnas y deja la detección de conflictos en el nivel de fila. Si la tabla ya está publicada en otras publicaciones de combinación, debe utilizar el mismo valor de seguimiento por columna que utilizan los artículos existentes basados en esta tabla. Este parámetro es específico solamente de los artículos de tabla.

Nota

Si se utiliza el seguimiento por fila en la detección de conflictos (valor predeterminado), la tabla base puede incluir un máximo de 1024 columnas, pero en el artículo deben filtrarse las columnas de forma que se publique un máximo de 246 columnas. Si se utiliza el seguimiento por columna, la tabla base puede incluir 246 columnas como máximo.

[ @status = ] 'status' Es el estado del artículo. status es nvarchar(10), con un valor predeterminado de unsynced. Si está activo, se ejecuta el script de procesamiento inicial para publicar la tabla. Si no está asincrónico, el script de procesamiento inicial para publicar la tabla se ejecuta la próxima vez que Agente de instantáneas ejecución.

[ @pre_creation_cmd = ] 'pre_creation_cmd' Especifica lo que debe hacer el sistema si la tabla existe en el suscriptor al aplicar la instantánea. pre_creation_cmd es nvarchar(10) y puede ser uno de los valores siguientes.

Valor Descripción
Ninguna Si la tabla ya existe en el suscriptor, no se lleva a cabo ninguna acción.
delete Emite una eliminación basada en la cláusula WHERE del filtro de subconjunto.
drop (valor predeterminado) Quita la tabla antes de volver a crearla. Necesario para admitir Microsoft SQL Server Compact suscriptores.
truncate Trunca la tabla de destino.

[ @creation_script = ] 'creation_script' Es la ruta de acceso y el nombre de un script de esquema de artículo opcional que se usa para crear el artículo en la base de datos de suscripciones. creation_script es nvarchar(255), con un valor predeterminado de NULL.

Nota

Los scripts de creación no se ejecutan en suscriptores de SQL Server Compact.

[ @schema_option = ] schema_option Es un mapa de bits de la opción de generación de esquemas para el artículo dado. schema_option es binary(8) y puede ser el | (OR bit a bit) producto de uno o varios de estos valores.

Valor Descripción
0x00 Deshabilita el scripting por el Agente de instantáneas y usa el script de precreación de esquema proporcionado definido en creation_script.
0x01 Genera la creación del objeto (CREATE TABLE, CREATE PROCEDURE, etc.). Este es el valor predeterminado en los artículos de procedimientos almacenados.
0x10 Genera el índice clúster correspondiente. Aunque esta opción no esté establecida, se generarán índices relacionados con claves principales y restricciones UNIQUE si ya están definidos en una tabla publicada.
0x20 Convierte los tipos de datos definidos por el usuario (UDT) en tipos de datos base en el suscriptor. Esta opción no se puede utilizar si existe una restricción CHECK o DEFAULT en una columna UDT, si una columna UDT forma parte de la clave principal o si una columna calculada hace referencia a una columna UDT.
0x40 Genera los índices no clúster correspondientes. Aunque esta opción no esté establecida, se generarán índices relacionados con claves principales y restricciones UNIQUE si ya están definidos en una tabla publicada.
0x80 Replica las restricciones PRIMARY KEY. También se replican los índices relacionados con la restricción, incluso si las opciones 0x10 y 0x40 no están habilitadas.
0x100 Replica los desencadenadores de usuario en un artículo de tabla, si se han definido.
0x200 Replica restricciones FOREIGN KEY. Si la tabla a la que se hace referencia no forma parte de una publicación, no se replica ninguna restricción FOREIGN KEY en una tabla publicada.
0x400 Replica las restricciones CHECK.
0x800 Replica los valores predeterminados.
0x1000 Replica la intercalación de columna.
0x2000 Replica las propiedades extendidas asociadas con el objeto de origen del artículo publicado.
0x4000 Replica las restricciones UNIQUE. También se replican los índices relacionados con la restricción, incluso si las opciones 0x10 y 0x40 no están habilitadas.
0x8000 Esta opción no es válida para publicadores que ejecutan SQL Server 2005 (9.x) o versiones posteriores.
0x10000 Replica las restricciones CHECK como NOT FOR REPLICATION de manera que no se impongan durante la sincronización.
0x20000 Replica las restricciones FOREIGN KEY como NOT FOR REPLICATION de manera que no se impongan durante la sincronización.
0x40000 Replica grupos de archivos asociados con un índice o una tabla con particiones.
0x80000 Replica el esquema de partición de una tabla con particiones.
0x100000 Replica el esquema de partición de un índice con particiones.
0x200000 Replica las estadísticas de tabla.
0x400000 Replica los enlaces predeterminados.
0x800000 Replica los enlaces de reglas.
0x1000000 Replica el índice de texto completo.
0x2000000 Las colecciones de esquemas XML enlazadas a columnas xml no se replican.
0x4000000 Replica índices en columnas xml.
0x8000000 Crea los esquemas que aún no están presentes en el suscriptor.
0x10000000 Convierte columnas xml en ntext en el suscriptor.
0x20000000 Convierte los tipos de datos de objetos grandes (nvarchar(max), varchar(max) y varbinary(max)) introducidos en en los tipos de datos que se SQL Server 2005 (9.x) admiten en SQL Server 2000 (8.x) .
0x40000000 Replica permisos.
0x80000000 Intenta quitar dependencias a objetos que no forman parte de la publicación.
0x100000000 Use esta opción para replicar el atributo FILESTREAM si se especifica en columnas varbinary(max). No especifique esta opción si replica tablas en suscriptores de SQL Server 2005 (9.x). No se admite la replicación de tablas que tienen columnas FILESTREAM en suscriptores, independientemente de cómo se establezca SQL Server 2000 (8.x) esta opción de esquema. Vea la opción relacionada 0x800000000.
0x200000000 Convierte los tipos de datos de fecha y hora (date, time, datetimeoffset y datetime2) introducidos en en los tipos de datos que se admiten en versiones SQL Server 2008 anteriores de SQL Server .
0x400000000 Replica la opción de compresión para los datos y los índices. Para obtener más información, consulte Data Compression.
0x800000000 Establezca esta opción para almacenar los datos de FILESTREAM en su propio grupo de archivos en el suscriptor. Si no se establece esta opción, los datos de FILESTREAM se almacenan en el grupo de archivos predeterminado. La replicación no crea grupos de archivos; por tanto, si establece esta opción, debe crear el grupo de archivos antes de aplicar la instantánea en el suscriptor. Para obtener más información sobre cómo crear objetos antes de aplicar la instantánea, vea Ejecutar scripts antes y después de aplicar la instantánea.

Vea la opción relacionada 0x100000000.
0x1000000000 Convierte tipos definidos por el usuario (UDT) de Common Language Runtime (CLR) en varbinary(max) para que las columnas de tipo UDT se puedan replicar en los suscriptores que ejecutan SQL Server 2005 (9.x) .
0x2000000000 Convierte el tipo de datos hierarchyid en varbinary(max) para que las columnas de tipo hierarchyid se puedan replicar en los suscriptores que ejecutan SQL Server 2005 (9.x) . Para obtener más información sobre cómo usar columnas hierarchyid en tablas replicadas, vea hierarchyid (Transact-SQL).
0x4000000000 Replica los índices filtrados de la tabla. Para obtener más información sobre los índices filtrados, vea Crear índices filtrados.
0x8000000000 Convierte los tipos de datos geography y geometry en varbinary(max) para que las columnas de estos tipos se puedan replicar en suscriptores que ejecutan SQL Server 2005 (9.x) .
0x10000000000 Replica índices en columnas de tipo geography y geometry.

Si este valor es NULL, el sistema genera automáticamente una opción de esquema válida para el artículo. La tabla Opción de esquema predeterminada de la sección Comentarios muestra el valor elegido en función del tipo de artículo. Además, no todos los schema_option son válidos para cada tipo de replicación y tipo de artículo. La tabla Opción de esquema válida que se proporciona en comentarios muestra las opciones que se pueden especificar para un tipo de artículo determinado.

Nota

El schema_option solo afecta a las opciones de replicación de la instantánea inicial. Una vez que el Agente de instantáneas ha generado el esquema inicial y se ha aplicado en el suscriptor, la replicación de los cambios de esquema de publicación en el suscriptor se produce en función de las reglas de replicación de cambios de esquema y la configuración de parámetros replicate_ddl especificada en sp_addmergepublication. Para más información, vea Realizar cambios de esquema en bases de datos de publicaciones.

[ @subset_filterclause = ] 'subset_filterclause' Es una cláusula WHERE que especifica el filtrado horizontal de un artículo de tabla sin la palabra WHERE incluida. subset_filterclause es de nvarchar(1000), con un valor predeterminado de una cadena vacía.

Importante

Por motivos de rendimiento, se recomienda que no aplique funciones a nombres de columnas en las cláusulas de los filtros de fila con parámetros, como LEFT([MyColumn]) = SUSER_SNAME(). Si usa HOST_NAME en una cláusula de filtro e invalida el valor HOST_NAME, es posible que tenga que convertir tipos de datos mediante CONVERT. Para obtener más información sobre los procedimientos recomendados para este caso, vea la sección "Invalidación del valor HOST_NAME() " en Parameterized Row Filters.

[ @article_resolver = ] 'article_resolver'Es el solucionador basado en COM que se usa para resolver conflictos en el artículo de tabla o el ensamblado de .NET Framework invocado para ejecutar lógica de negocios personalizada en el artículo de tabla. article_resolver es varchar(255), con un valor predeterminado de NULL. Los valores disponibles para este parámetro se enumeran en los solucionadores personalizados de Microsoft. Si el valor proporcionado no es uno de los solucionadores de Microsoft, SQL Server utiliza el solucionador especificado en lugar del solucionador proporcionado por el sistema. Use sp_enumcustomresolvers para enumerar la lista de solucionadores personalizados disponibles. Para obtener más información, vea Ejecutar lógica de negocios durante la sincronización de mezcla y Detección y resolución de conflictos de replicación de mezcla avanzada.

[ @resolver_info = ] 'resolver_info' Se usa para especificar la información adicional requerida por un solucionador personalizado. Algunos de los solucionadores de Microsoft requieren que se proporcione una columna como entrada para el solucionador. resolver_info es nvarchar(255), con un valor predeterminado de NULL. Para obtener más información, consulte Solucionadores basados en Microsoft COM.

[ @source_owner = ] 'source_owner' Es el nombre del propietario del source_object. source_owner es sysname, con un valor predeterminado de NULL. Si es NULL, se presupone que el usuario actual es el propietario.

[ @destination_owner = ] 'destination_owner' Es el propietario del objeto en la base de datos de suscripciones, si no es "dbo". destination_owner es sysname, con un valor predeterminado de NULL. Si es NULL, se presupone que el propietario es 'dbo'.

[ @vertical_partition = ] 'column_filter' Habilita y deshabilita el filtrado de columnas en un artículo de tabla. vertical_partition es nvarchar(5) con un valor predeterminado de FALSE.

false indica que no hay ningún filtrado vertical y publica todas las columnas.

true borra todas las columnas excepto la clave principal declarada y las columnas ROWGUID. Las columnas se agregan mediante sp_mergearticlecolumn.

[ @auto_identity_range = ] 'automatic_identity_range' Habilita y deshabilita el control automático de intervalos de identidad para este artículo de tabla en una publicación en el momento de su creación. auto_identity_range es nvarchar(5), con un valor predeterminado de FALSE. True habilita el control automático de intervalos de identidad, mientras que false lo deshabilita.

Nota

auto_identity_range ha quedado en desuso y solo se proporciona por compatibilidad con versiones anteriores. Debe usar identityrangemanagementoption para especificar las opciones de administración del intervalo de identidades. Para más información, vea Replicar columnas de identidad.

[ @pub_identity_range = ] pub_identity_range Controla el tamaño del intervalo de identidad asignado a un suscriptor con una suscripción de servidor cuando se usa la administración automática de intervalos de identidad. Este rango de identidad se reserva para que un suscriptor de republicación pueda realizar asignaciones a sus propios suscriptores. pub_identity_range es bigint, con un valor predeterminado de NULL. Debe especificar este parámetro si identityrangemanagementoption es automático o si auto_identity_range es true.

[ @identity_range = ] identity_rangeControla el tamaño del intervalo de identidad asignado al Publisher y al suscriptor cuando se usa la administración automática de intervalos de identidad. identity_range es bigint, con un valor predeterminado de NULL. Debe especificar este parámetro si identityrangemanagementoption es automático o si auto_identity_range es true.

Nota

identity_range controla el tamaño del intervalo de identidad en la republicación de suscriptores mediante versiones anteriores de SQL Server .

[ @threshold = ] threshold Valor de porcentaje que controla cuándo Agente de mezcla asigna un nuevo intervalo de identidad. Cuando se usa el porcentaje de valores especificado en threshold, el Agente de mezcla crea un nuevo intervalo de identidad. threshold es int, con un valor predeterminado de NULL. Debe especificar este parámetro si identityrangemanagementoption es automático o si auto_identity_range es true.

[ @verify_resolver_signature = ] verify_resolver_signature Especifica si se comprueba una firma digital antes de usar una resolución en la replicación de mezcla. verify_resolver_signature es int, con un valor predeterminado de 1.

0 especifica que no se comprobará la firma.

1 especifica que se comprobará la firma para ver si es de un origen de confianza.

[ @destination_object = ] 'destination_object' Es el nombre del objeto en la base de datos de suscripciones. destination_object es sysname, con un valor predeterminado de lo que se encuentra @ en source_object. Este parámetro se puede especificar únicamente si el artículo es de solo esquema, como procedimientos almacenados, vistas y UDF. Si el artículo especificado es un artículo de tabla, el valor de @ source_object invalida el valor de destination_object.

[ @allow_interactive_resolver = ] 'allow_interactive_resolver' Habilita o deshabilita el uso del solucionador interactivo en un artículo. allow_interactive_resolver es nvarchar(5), con un valor predeterminado de FALSE. true permite el uso del solucionador interactivo en el artículo; false lo deshabilita.

Nota

El Solucionador interactivo no se admite en suscriptores de SQL Server Compact.

[ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' Este parámetro está en desuso y se mantiene por compatibilidad con versiones anteriores de scripts.

[ @check_permissions = ] check_permissionsEs un mapa de bits de los permisos de nivel de tabla que se comprueban cuando el Agente de mezcla aplica cambios a la Publisher. Si la cuenta de inicio de sesión o usuario del publicador que utiliza el proceso de mezcla no dispone de los permisos de tabla correctos, los cambios no válidos se registran como conflictos. check_permissions es int y puede ser el | (OR bit a bit) producto de uno o varios de los valores siguientes.

Valor Descripción
0x00 (valor predeterminado) Los permisos no se comprueban.
0x10 Comprueba los permisos en el publicador antes de cargar las operaciones de inserción creadas en un suscriptor.
0x20 Comprueba los permisos en el publicador antes de cargar las operaciones de actualización creadas en un suscriptor.
0x40 Comprueba los permisos en el publicador antes de cargar las operaciones de eliminación creadas en un suscriptor.

[ @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 un poco, con un valor predeterminado de 0.

0 especifica que agregar un artículo no hace que la instantánea no sea válida. 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 agregar un artículo puede hacer que la instantánea no sea válida y, si hay suscripciones existentes que requieren una nueva instantánea, concede permiso para que la instantánea existente se marque como obsoleta y se genere una nueva instantánea. force_invalidate_snapshot se establece en 1 al agregar un artículo a una publicación con una instantánea existente.

[ @published_in_tran_pub = ] 'published_in_tran_pub' Indica que un artículo de una publicación de combinación también se publica en una publicación transaccional. published_in_tran_pub es nvarchar(5), con un valor predeterminado de FALSE. true especifica que el artículo también se publica en una publicación transaccional.

[ @force_reinit_subscription = ] force_reinit_subscription Confirma que la acción realizada por este procedimiento almacenado puede requerir que se reinicialicen las suscripciones existentes. force_reinit_subscription es un poco, con un valor predeterminado de 0.

0 especifica que agregar un artículo no hace que la suscripción se reinicialice. Si el procedimiento almacenado detecta que el cambio requiere la reinicialización de las suscripciones existentes, se producirá un error y no se realizarán cambios.

1 significa que los cambios en el artículo de combinación provocan que se reinicialicen las suscripciones existentes y concede permiso para que se produzca la reinicialización de la suscripción. force_reinit_subscription se establece en 1 cuando subset_filterclause especifica un filtro de fila con parámetros.

[ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' Especifica el nivel de detección de conflictos de un artículo que es miembro de un registro lógico. logical_record_level_conflict_detection es nvarchar(5), con un valor predeterminado de FALSE.

true especifica que se detectará un conflicto si se realizan cambios en cualquier lugar del registro lógico.

false especifica que la detección de conflictos predeterminada se usa según lo especificado por column_tracking. Para más información, vea Agrupar cambios en filas relacionadas con registros lógicos.

Nota

Dado que los suscriptores no admiten registros lógicos, debe especificar un valor de SQL Server Compact false para logical_record_level_conflict_detection admitir estos suscriptores.

[ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' Especifica el nivel de resolución de conflictos para un artículo que es miembro de un registro lógico. logical_record_level_conflict_resolution es nvarchar(5), con un valor predeterminado de FALSE.

true especifica que todo el registro lógico ganador sobrescribe el registro lógico que pierde.

false especifica que las filas ganadas no están restringidas al registro lógico. Si logical_record_level_conflict_detection es true , logical_record_level_conflict_resolution debe establecerse también en true. Para más información, vea Agrupar cambios en filas relacionadas con registros lógicos.

Nota

Dado que los suscriptores no admiten registros lógicos, debe especificar un valor de false para logical_record_level_conflict_resolution SQL Server Compact admitir estos suscriptores.

[ @partition_options = ] partition_options Define la forma en que se particionan los datos del artículo, lo que permite optimizar el rendimiento cuando todas las filas pertenecen a una sola partición o a una sola suscripción. partition_options es tinyint y puede ser uno de los valores siguientes.

Valor Descripción
0 (valor predeterminado) El filtrado del artículo es estático o no produce un subconjunto único de datos para cada partición, es decir, una partición "superpuesta".
1 Las particiones se superponen y las actualizaciones del lenguaje de manipulación de datos (DML) realizadas en el suscriptor no pueden cambiar la partición a la que pertenece la fila.
2 El filtro para el artículo produce particiones no superpuestas, pero varios suscriptores pueden recibir la misma partición.
3 El filtro para el artículo produce particiones no superpuestas que son exclusivas para cada suscripción.

Nota

Si la tabla de origen de un artículo ya está publicada en otra publicación, el valor de partition_options debe ser el mismo para ambos artículos.

[ @processing_order = ] processing_order Indica el orden de procesamiento de los artículos de una publicación de combinación. processing_order es int, con un valor predeterminado de 0. 0 especifica que el artículo no está ordenado y cualquier otro valor representa el valor ordinal del orden de procesamiento de este artículo. Los artículos se procesan en orden desde el valor menor al mayor. Si dos artículos tienen el mismo valor, el orden de procesamiento viene determinado por el orden del alias del artículo en la tabla del sistema sysmergearticles. Para más información, vea Specify merge replication properties (Especificación de propiedades de replicación de mezcla).

[ @subscriber_upload_options = ] subscriber_upload_options Define restricciones en las actualizaciones realizadas en un suscriptor con una suscripción de cliente. Para más información, vea Optimizar el rendimiento de la replicación de mezcla con artículos de solo descarga. subscriber_upload_options es tinyint y puede ser uno de los valores siguientes.

Valor Descripción
0 (valor predeterminado) Sin restricciones. Los cambios realizados en el suscriptor se cargan en el publicador.
1 Se permiten cambios en el suscriptor, pero éstos no se cargan en el publicador.
2 No se permiten cambios en el suscriptor.

Cambiar subscriber_upload_options requiere que la suscripción se reinicialice llamando a sp_reinitmergepullsubscription (Transact-SQL).

Nota

Si la tabla de origen de un artículo ya está publicada en otra publicación, el valor de subscriber_upload_options debe ser el mismo para ambos artículos.

[ @identityrangemanagementoption = ] identityrangemanagementoption Especifica cómo se controla la administración de intervalos de identidad para el artículo. identityrangemanagementoption es nvarchar(10) y puede ser uno de los valores siguientes.

Valor Descripción
Ninguna Deshabilita la administración de intervalos de identidad.
Manual Marca la columna de identidad utilizando NOT FOR REPLICATION para habilitar la administración manual de intervalos de identidad.
auto Especifica la administración automática de intervalos de identidad.
NULL (valor predeterminado) El valor predeterminado es none cuando el valor de auto_identity_range no es true.

Por compatibilidad con versiones anteriores, cuando el valor de identityrangemanagementoption es NULL, se comprueba auto_identity_range valor de . Sin embargo, cuando el valor de identityrangemanagementoption no es NULL, el valor de auto_identity_range se omite. Para más información, vea Replicar columnas de identidad.

[ @delete_tracking = ] 'delete_tracking' Indica si se replican las eliminaciones. delete_tracking es nvarchar(5), con un valor predeterminado de TRUE. false indica que las eliminaciones no se replican y true indica que se replican las eliminaciones, que es el comportamiento habitual para la replicación de mezcla. Cuando delete_tracking se establece en false, las filas eliminadas en el suscriptor se deben quitar manualmente en el Publisher y las filas eliminadas en el Publisher deben quitarse manualmente en el suscriptor.

Importante

Si delete_tracking en false, se produce una no convergencia. Si la tabla de origen de un artículo ya está publicada en otra publicación, el valor de delete_tracking debe ser el mismo para ambos artículos.

Nota

delete_tracking opciones no se pueden establecer mediante el Asistente para nueva publicación o el cuadro de diálogo Propiedades de la publicación .

[ @compensate_for_errors = ] 'compensate_for_errors' Indica si se realiza una acción de compensación cuando se producen errores durante la sincronización. compensate_for_errors i s nvarchar(5), con un valor predeterminado de FALSE. Cuando se establece en true, los cambios que no se pueden aplicar en un suscriptor o Publisher durante la sincronización siempre conducen a acciones de compensación para deshacer el cambio; sin embargo, un suscriptor configurado incorrectamente que genera un error puede provocar cambios en otros suscriptores y publicadores que se desharán. False deshabilita estas acciones de compensación; sin embargo, los errores se siguen registrando como con la compensación y las mezclas posteriores siguen intentando aplicar los cambios hasta que se realicen correctamente.

Importante

Aunque parezca que los datos de las filas afectadas no tengan convergencia, en cuanto trate los errores, se podrán aplicar los cambios y los datos convergerán. Si la tabla de origen de un artículo ya está publicada en otra publicación, el valor de compensate_for_errors debe ser el mismo para ambos artículos.

[ @stream_blob_columns = ] 'stream_blob_columns' Especifica que se debe usar una optimización de flujo de datos al replicar columnas de objetos binarios grandes. stream_blob_columns es nvarchar(5), con un valor predeterminado de FALSE. True significa que se va a intentar la optimización. stream_blob_columns se establece en true cuando FILESTREAM está habilitado. Esto permite que la replicación de datos FILESTREAM se realice de forma óptima y que se reduzca el uso de memoria. Para forzar que los artículos de la tabla FILESTREAM no usen el streaming de blobs, use sp_changemergearticle para stream_blob_columns en false.

Importante

Si se habilita esta optimización de la memoria, el rendimiento del Agente de mezcla podría verse afectado durante la sincronización. Esta opción solo se debe utilizar al replicar columnas que contienen megabytes de datos.

Nota

Ciertas funcionalidades de replicación de mezcla, como los registros lógicos, todavía pueden impedir que se utilice la optimización de secuencias al replicar objetos binarios grandes incluso con stream_blob_columns establecido en true.

Valores de código de retorno

0 (correcto) o 1 (error)

Observaciones

sp_addmergearticle se usa en la replicación de mezcla.

Al publicar objetos, sus definiciones se copian en los suscriptores. Si va a publicar un objeto de base de datos que depende de uno o varios objetos, debe publicar todos los objetos a los que hace referencia. Por ejemplo, si publica una vista que depende de una tabla, también debe publicar la tabla.

Si especifica un valor de 3 para partition_options, solo puede haber una suscripción única para cada partición de datos de ese artículo. Si se crea una segunda partición en la que el criterio de filtrado de la nueva suscripción se resuelve en la misma partición que la suscripción existente, se quitará la suscripción existente.

Al especificar un valor de 3 para partition_options, los metadatos se limpian cada vez que se ejecuta el Agente de mezcla y la instantánea con particiones expira más rápidamente. Al utilizar esta opción, debe considerar la habilitación de la instantánea con particiones solicitada por el suscriptor. Para más información, consulte Instantáneas para publicaciones de combinación con filtros con parámetros.

Agregar un artículo con un filtro horizontal estático, mediante subset_filterclause, a una publicación existente con artículos con filtros con parámetros requiere que se reinicialicen las suscripciones.

Al especificar processing_order, se recomienda dejar espacios entre los valores de orden de artículo, lo que facilita la configuración de nuevos valores en el futuro. Por ejemplo, si tiene tres artículos, Article1, Article2 y Article3, establezca processing_order en 10, 20 y 30, en lugar de 1, 2 y 3. Para más información, vea Specify merge replication properties (Especificación de propiedades de replicación de mezcla).

Tabla Opciones de esquema predeterminadas

En esta tabla se describe el valor predeterminado establecido por el procedimiento almacenado si se especifica un valor NULL para schema_option, que depende del tipo de artículo.

Tipo de artículo Valor de la opción de esquema
func schema only 0x01
indexed view schema only 0x01
proc schema only 0x01
table 0x0C034FD1 - SQL Server 2005 (9.x) y publicaciones posteriores compatibles con una instantánea en modo nativo.

0x08034FF1 - SQL Server 2005 (9.x) y publicaciones posteriores compatibles con una instantánea en modo de caracteres.
view schema only 0x01

Nota

Si la publicación admite versiones anteriores de SQL Server , la opción de esquema predeterminada para la tabla es 0x30034FF1.

Tabla Opciones de esquema válidas

En la tabla siguiente se describen los valores permitidos schema_option según el tipo de artículo.

Tipo de artículo Valores de las opciones de esquema
func schema only 0x01 y 0x2000
indexed view schema only 0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 y 0x200000
proc schema only 0x01 y 0x2000
table Todas las opciones.
view schema only 0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 y 0x200000

Ejemplo

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Permisos

Debe pertenecer al rol fijo de servidor sysadmin o al rol fijo de base de datos db_owner .

Consulte también

Define an Article
Publicar datos y objetos de base de datos
Replicación de columnas de identidad
sp_changemergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Procedimientos almacenados de replicación (Transact-SQL)