Volver a generar procedimientos transaccionales personalizados para reflejar cambios de esquema

De manera predeterminada, la réplica transaccional lleva a cabo todos los cambios de datos en los suscriptores a través de procedimientos almacenados generados por procedimientos internos para cada artículo de la tabla en la publicación. Los tres procedimientos (para inserciones, actualizaciones y eliminaciones, respectivamente) se copian al suscriptor y se ejecutan cuando se replica una inserción, actualización o eliminación en el suscriptor. Cuando se realiza un cambio de esquema en una tabla de un publicador de SQL Server, la réplica vuelve a generar automáticamente estos procedimientos, llamando al mismo conjunto de procedimientos internos de secuencias de comandos para que los nuevos procedimientos coincidan con el nuevo esquema (no se admite la réplica de cambios de esquema para los publicadores de Oracle).

También es posible especificar procedimientos personalizados para reemplazar uno o más de los procedimientos predeterminados. Los procedimientos personalizados se deben modificar si el cambio de esquema va a afectar al procedimiento. Por ejemplo, si un procedimiento hace referencia a una columna que se quita en un cambio de esquema, se deben quitar del procedimiento las referencias a esa columna. La réplica propaga un nuevo procedimiento personalizado a los suscriptores de dos maneras:

  • La primera opción es utilizar un procedimiento de secuencias de comandos personalizado para reemplazar los valores predeterminados que utiliza la réplica:
    1. Al ejecutar sp_addarticle (Transact-SQL), asegúrese de que el bit 0x02 de @schema\_option** esté establecido entrue**.
    2. Ejecute sp_register_custom_scripting (Transact-SQL) y especifique un valor 'insert', 'update' o 'delete' para el parámetro **@type** y el nombre del procedimiento de secuencia de comandos personalizado para el parámetro **@value**.
      La siguiente vez que se lleve a cabo un cambio de esquema, la réplica llamará a este procedimiento almacenado para crear una secuencia de comandos de la definición para el nuevo procedimiento almacenado personalizado definido por el usuario y, después, propagará el procedimiento a cada suscriptor.
  • La segunda opción es utilizar una secuencia de comandos que contenga una nueva definición de procedimiento personalizado:
    1. Al ejecutar sp_addarticle (Transact-SQL), establezca el bit 0x02 de **@schema\_option** en false para que la réplica no genere automáticamente procedimientos personalizados en el suscriptor.
    2. Antes de cada cambio de esquema, cree un nuevo archivo de secuencia de comandos y registre la secuencia de comandos con la réplica, ejecutando sp_register_custom_scripting (Transact-SQL). Especifique un valor de 'custom_script' para el parámetro **@type** y la ruta de acceso a la secuencia de comandos en el publicador para el parámetro **@value**.
      La siguiente vez que realice un cambio de esquema importante, esta secuencia de comandos se ejecutará en cada suscriptor en la misma transacción que el comando DDL. Una vez realizado el cambio de esquema, la secuencia de comandos se elimina del registro. Debe volver a registrar la secuencia de comandos para que se ejecute de nuevo después del siguiente cambio de esquema.

Vea también

Conceptos

Especificar cómo se propagan los cambios para los artículos transaccionales
Realizar cambios de esquema en las bases de datos de publicaciones

Ayuda e información

Obtener ayuda sobre SQL Server 2005