Compartir a través de


Establecimiento del método de propagación para los cambios de datos a artículos transaccionales

Se aplica a: SQL Server Azure 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.

Antes de empezar

Limitaciones y restricciones

  • Tenga cuidado al editar cualquiera de los archivos de instantáneas generados por la replicación. Pruebe y admita lógica personalizada en 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 instrucción, especifique el método de propagación de cada operación con los menús Formato de entrega para INSERT, Formato de entrega para UPDATE y Formato de entrega para DELETE.

  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 instrucción, seleccione la sintaxis CALL en el menú de formato de entrega correspondiente (Formato de entrega para INSERT, Formato de entrega para UPDATE o Formato de entrega para DELETE) y, después, escriba el nombre del procedimiento que se va a usar en Procedimiento almacenado para INSERT, Procedimiento almacenado para DELETE o Procedimiento almacenado para UPDATE. 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 con el Bloc de notas u otro editor de texto, busque el comando CREATE PROCEDURE para los procedimientos almacenados insert, update o delete, y edite la definición del procedimiento para proporcionar una lógica personalizada para propagar los cambios de datos. Si la instantánea se vuelve a generar, debe volver a crear el procedimiento personalizado.

Usar 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 los comandos INSERT .

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

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

    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 los comandos INSERT .

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

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

    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 con Bloc de notas.exe, busque el comando CREATE PROCEDURE para los procedimientos almacenados de inserción, actualización o eliminación, y edite la definición del procedimiento para proporcionar una 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 la base de datos de publicación del publicador, use la instrucción ALTER PROCEDURE para modificar sp_scriptpublicationcustomprocs de modo que devuelva un script CREATE PROCEDURE 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 publicación 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.