Establecer el método de propagación para cambios de datos en artículos transaccionales
En este tema se describe cómo establecer el método de propagación para los cambios de datos en artículos transaccionales de SQL Server 2014 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.
En este tema
Antes de empezar:
Para establecer el método de propagación para los cambios de datos en artículos transaccionales con:
Antes de empezar
Limitaciones y restricciones
- Tenga cuidado al editar cualquiera de los archivos de instantáneas generados por la replicación. Debe probar y admitir lógica personalizada en los procedimientos almacenados personalizados. Microsoft no proporciona compatibilidad con la 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> , que está disponible en el Asistente para nueva publicación y en 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
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, a continuación, haga clic en Propiedades del artículo.
Haga clic en 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, especifique el método de propagación para cada operación mediante el formato de entrega INSERT, el formato de entrega UPDATE y los menús de formato de entrega DELETE .
Haga clic en OK.
Si está en el cuadro de diálogo Propiedades de la publicación : <publicación> , haga clic en Aceptar para guardar y cerrar el cuadro de diálogo.
Para generar y utilizar procedimientos almacenados personalizados
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, a continuación, haga clic en Propiedades del artículo.
Haga clic en 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, seleccione la sintaxis CALL en el menú de formato de entrega adecuado (formato de entrega INSERT, formato de entrega UPDATE o formato de entrega DELETE) y, a continuación, escriba el nombre del procedimiento que se va a usar en el procedimiento almacenado INSERT, DELETE procedimiento almacenado o procedimiento almacenado 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).
Haga clic en OK.
Si está en el cuadro de diálogo Propiedades de la publicación : <publicación> , haga clic en Aceptar para guardar y cerrar el cuadro de diálogo.
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
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 para el artículo para @article, el objeto de base de datos que se publica para @source_object y un valor de SQL para al menos uno de los parámetros siguientes:
@ins_cmd : controla la replicación de comandos INSERT .
@upd_cmd : controla la replicación de comandos UPDATE .
@del_cmd : controla la replicación de comandos DELETE .
Nota
Al especificar un valor de SQL para cualquiera de los parámetros anteriores, los comandos de ese tipo se replicarán en el suscriptor como el comando transact-SQL adecuado.
Para más información, consulte Define an Article.
Para crear un artículo que no propaga los cambios de datos
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 para el artículo para @article, el objeto de base de datos que se publica para @source_object y un valor de NONE para al menos uno de los parámetros siguientes:
@ins_cmd : controla la replicación de comandos INSERT .
@upd_cmd : controla la replicación de comandos UPDATE .
@del_cmd : controla la replicación de 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
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 para el 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 al menos uno de los parámetros siguientes:
@ins_cmd : especifique un valor de CALL sp_MSins_article_name, donde article_name es el valor especificado para @article.
@del_cmd : especifique un valor de CALL sp_MSdel_article_name o XCALL sp_MSdel_article_name, donde article_name es el valor especificado para _*@article**.
@upd_cmd : especifique un valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd__article_name*o MCALL sp_MSupd_article_name, donde 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.
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
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 para el 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 al menos uno de los parámetros siguientes:
@ins_cmd : especifique un valor de CALL sp_MSins_article_name, donde article_name es el valor especificado para @article.
@del_cmd : especifique un valor de CALL sp_MSdel_article_name o XCALL sp_MSdel_article_name, donde article_name es el valor especificado para @article.
@upd_cmd: especifique un valor de SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALLsp_MSupd_article_name, donde 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.
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
En la base de datos de publicación del publicador, ejecute sp_changearticle. Especifique @publication, @article, un valor de ins_cmd, upd_cmd o del_cmd para @property y el método de propagación adecuado para @value.
Repita el paso 1 para cada método de propagación que se va a cambiar.
Consulte también
Especificar cómo se propagan los cambios para los artículos transaccionales
Creación de una publicación