Establecer el método de propagación de los cambios de datos para los artículos transaccionales

Se aplica a:SQL ServerAzure SQL Managed Instance

En este tema se describe cómo establecer el método de propagación para los cambios de datos a artículos transaccionales en SQL Server mediante SQL Server Management Studio o Transact-SQL.

De forma predeterminada, la replicación transaccional propaga los cambios a los suscriptores mediante un conjunto de procedimientos almacenados para cada artículo. Puede reemplazar estos procedimientos con procedimientos personalizados. Para más información, vea Especificar cómo se propagan los cambios para los artículos transaccionales.

Limitaciones y restricciones

  • Tenga cuidado al editar cualquiera de los archivos de instantáneas generados por la replicación. Pruebe y dé soporte a la lógica personalizada de los procedimientos almacenados personalizados. Microsoft no ofrece compatibilidad con lógica personalizada.

Uso de SQL Server Management Studio

Especifique el método de propagación en la pestaña Propiedades del cuadro de diálogo Propiedades del artículo: <Artículo>, disponible en el Asistente para nueva publicación y el cuadro de diálogo Propiedades de la publicación: <Publicación>. Para obtener más información sobre el uso del asistente y el acceso al cuadro de diálogo, consulte Create a Publication (Crear una publicación) y Ver y modificar propiedades de publicación.

Para especificar el método de propagación

  1. En la página Artículos del Asistente para nueva publicación o en el cuadro de diálogo Propiedades de la publicación: <Publicación>, seleccione una tabla y, luego, seleccione Propiedades del artículo.

  2. Seleccione Set Properties of Highlighted Table Article (Establecer propiedades del artículo de tabla resaltado).

  3. En la pestaña Propiedades del cuadro de diálogo Propiedades del artículo - <Artículo>, en la sección Entrega de instrucciones, especifique el método de propagación para cada operación mediante los menús INSERTformato de entrega, UPDATEformato de entrega y DELETEformato de entrega.

  4. Seleccione Aceptar.

  5. Si se encuentra en el cuadro de diálogo Propiedades de la publicación: <Publicación>, seleccione Aceptar para guardar y cerrar el cuadro de diálogo.

Para generar y utilizar procedimientos almacenados personalizados

  1. En la página Artículos del Asistente para nueva publicación o en el cuadro de diálogo Propiedades de la publicación: <Publicación>, seleccione una tabla y, luego, seleccione Propiedades del artículo.

  2. Seleccione Set Properties of Highlighted Table Article (Establecer propiedades del artículo de tabla resaltado).

    En la pestaña Propiedades del cuadro de diálogo Propiedades del artículo: <Artículo>, en la sección Entrega de instrucciones SQL, seleccione la sintaxis CALL en el menú del formato de entrega correspondiente (INSERT formato de entrega, UPDATE formato de entrega o DELETE formato de entrega) y, a continuación, escriba el nombre del procedimiento que se va a usar en INSERT procedimiento almacenado, DELETE procedimiento almacenado o UPDATE procedimiento almacenado. Para más información sobre la sintaxis CALL, vea la sección "Call syntax for stored procedures" (Sintaxis de llamada para procedimientos almacenados) de Transactional Articles - Specify How Changes Are Propagated (Artículos transaccionales: Especificar cómo se propagan los cambios).

  3. Seleccione Aceptar.

  4. Si se encuentra en el cuadro de diálogo Propiedades de la publicación: <Publicación>, seleccione Aceptar para guardar y cerrar el cuadro de diálogo.

  5. Cuando se genere la instantánea para la publicación, incluirá el procedimiento que ha especificado en el paso anterior. Los procedimientos utilizarán la sintaxis CALL que ha especificado, pero incluirán la lógica predeterminada que utilice la replicación.

    Después de generar la instantánea, navegue a la carpeta de instantáneas de la publicación a la que pertenece este artículo y busque el archivo .sch con el mismo nombre que el artículo. Abra este archivo mediante el Bloc de notas u otro editor de texto, busque el CREATE PROCEDURE comando para los procedimientos almacenados de inserción, actualización o eliminación y edite la definición del procedimiento para proporcionar cualquier lógica personalizada para propagar los cambios de datos. Si la instantánea se vuelve a generar, debe volver a crear el procedimiento personalizado.

Uso de Transact-SQL

La replicación transaccional le permite controlar cómo los cambios se propagan del publicador a los suscriptores; este método de propagación se puede establecer mediante programación cuando un artículo se crea y se cambia después con los procedimientos almacenados de la replicación.

Nota:

Puede especificar un método de propagación diferente para cada tipo de operación (inserción, actualización o eliminación) DML (lenguaje de manipulación de datos) que se produce en una fila de datos publicados.

Para más información, vea Especificar cómo se propagan los cambios para los artículos transaccionales.

Para crear un artículo que use comandos Transact-SQL para propagar cambios de datos

  1. En la base de datos de publicación del publicador, ejecute sp_addarticle. Especifique el nombre de la publicación a la que pertenece el artículo para @publication, un nombre de artículo para @article, el objeto de base de datos que se publica para @source_objecty un valor de SQL para por lo menos uno de los parámetros siguientes:

    • @ins_cmd : controla la replicación de INSERT comandos.

    • @upd_cmd : controla la replicación de UPDATE comandos.

    • @del_cmd : controla la replicación de DELETE comandos.

    Nota:

    Al especificar un valor de SQL para cualquiera de los parámetros anteriores, los comandos de ese tipo se replicarán al suscriptor como el comando de Transact-SQL correspondiente.

    Para más información, consulte Define an Article.

Para crear un artículo que no propaga los cambios de datos:

  1. En la base de datos de publicación del publicador, ejecute sp_addarticle. Especifique el nombre de la publicación a la que pertenece el artículo para @publication, un nombre de artículo para @article, el objeto de base de datos que se publica para @source_objecty un valor de NONE para por lo menos uno de los parámetros siguientes:

    • @ins_cmd : controla la replicación de INSERT comandos.

    • @upd_cmd : controla la replicación de UPDATE comandos.

    • @del_cmd : controla la replicación de DELETE comandos.

    Nota:

    Al especificar un valor de NONE para cualquiera de los parámetros anteriores, los comandos de ese tipo no se replicarán al suscriptor.

    Para más información, consulte Define an Article.

Para crear un artículo con procedimientos almacenados personalizados modificados por el usuario

  1. En la base de datos de publicación del publicador, ejecute sp_addarticle. Especifique el nombre de la publicación a la que pertenece el artículo para @publication, un nombre de artículo para @article, el objeto de base de datos que se publica para @source_object, un valor para la máscara de bits @schema_option que contiene el valor 0x02 (habilita la generación automática de procedimientos almacenados personalizados) y por lo menos uno de los parámetros siguientes:

    • @ins_cmd: especifica un valor de CALL sp_MSins_article_name, en el que article_name es el valor especificado para @article.

    • @del_cmd: especifica un valor de CALL sp_MSdel_article_name o XCALL sp_MSdel_article_name, en el que article_name es el valor especificado para @article.

    • @upd_cmd: especifica un valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name o MCALL sp_MSupd_article_name, en el que article_name es el valor especificado para @article.

    Nota:

    Para cada uno de los parámetros de comandos anteriores, puede especificar su propio nombre para los procedimientos almacenados que genera la replicación.

    Nota:

    Para más información sobre la sintaxis CALL, SCALL, XCALL y MCALL, vea Transactional Articles - Specify How Changes Are Propagated (Artículos transaccionales: Especificar cómo se propagan los cambios).

    Para más información, consulte Define an Article.

  2. Después de generar la instantánea, navegue a la carpeta de instantáneas de la publicación a la que pertenece este artículo y busque el archivo .sch con el mismo nombre que el artículo. Abra este archivo mediante Notepad.exe, busque el CREATE PROCEDURE comando para los procedimientos almacenados de inserción, actualización o eliminación y edite la definición del procedimiento para proporcionar cualquier lógica personalizada para propagar los cambios de datos. Para más información, vea Especificar cómo se propagan los cambios para los artículos transaccionales.

Para crear un artículo con scripting personalizado en los procedimientos almacenados personalizados y propagar los cambios de datos

  1. En la base de datos de publicación del publicador, ejecute sp_addarticle. Especifique el nombre de la publicación a la que pertenece el artículo para @publication, un nombre de artículo para @article, el objeto de base de datos que se publica para @source_object, un valor para la máscara de bits @schema_option que contiene el valor 0x02 (habilita la generación automática de procedimientos almacenados personalizados) y por lo menos uno de los parámetros siguientes:

    • @ins_cmd: especifica un valor de CALL sp_MSins_article_name, en el que article_name es el valor especificado para @article.

    • @del_cmd: especifica un valor de CALL sp_MSdel_article_name o XCALL sp_MSdel_article_name, en el que article_name es el valor especificado para @article.

    • @upd_cmd: especifica un valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALL sp_MSupd_article_name, en el que article_name es el valor especificado para @article.

    Nota:

    Para cada uno de los parámetros de comandos anteriores, puede especificar su propio nombre para los procedimientos almacenados que genera la replicación.

    Nota:

    Para más información sobre la sintaxis CALL, SCALL, XCALL y MCALL, vea Transactional Articles - Specify How Changes Are Propagated (Artículos transaccionales: Especificar cómo se propagan los cambios).

    Para más información, consulte Define an Article.

  2. En el publicador, en la base de datos de publicación, use la instrucción ALTER PROCEDURE para editar sp_scriptpublicationcustomprocs de modo que devuelva una CREATE PROCEDURE secuencia de comandos para los procedimientos almacenados personalizados de inserción, actualización y eliminación. Para más información, vea Especificar cómo se propagan los cambios para los artículos transaccionales.

Para cambiar el método de propagar los cambios para un artículo existente

  1. En la base de datos de publicaciones del Publicador, ejecute sp_changearticle. Especifique @publication, @article, un valor de ins_cmd, upd_cmdo del_cmd para @propertyy el método de propagación adecuado para @value.

  2. Repita el paso 1 para cada método de propagación que se va a cambiar.