Controlar restricciones, identidades y desencadenadores con NOT FOR REPLICATION

Actualizado: 15 de septiembre de 2007

En algunos casos, es conveniente tratar de distinta manera la actividad del usuario y del agente en una topología de réplica. Por ejemplo, si un usuario inserta una fila en el publicador y esa inserción satisface una restricción CHECK en la tabla, es posible que no sea necesario exigir la misma restricción cuando un agente de réplica inserte la fila en el suscriptor. La opción NOT FOR REPLICATION permite especificar que los siguientes objetos de la base de datos se traten de manera distinta cuando un agente de réplica realiza una operación:

  • Restricciones de clave externa
    La restricción de clave externa no se aplica cuando un agente de réplica realiza una operación de inserción, actualización o eliminación.
  • Restricciones CHECK
    La restricción CHECK no se aplica cuando un agente de réplica realiza una operación de inserción, actualización o eliminación.
  • Columnas de identidad
    El valor de la columna de identidad no se incrementa cuando un agente de réplica realiza una operación de inserción.
  • Desencadenadores
    El desencadenador no se ejecuta cuando un agente de réplica realiza una operación de inserción, actualización o eliminación.

Cuando se publica una tabla, las opciones de esquema controlan cómo se crean los objetos en la base de datos de suscripciones. Las opciones de esquema predeterminadas varían según el tipo de publicación; cuando las opciones se establecen para especificar que las restricciones FOREIGN KEY y las restricciones CHECK se crean en la base de datos de suscripciones, se establece la opción NOT FOR REPLICATION. La opción NOT FOR REPLICATION también se establece cuando se replican columnas de identidad en publicaciones de mezcla y transaccionales compatibles con suscripciones actualizables. Para obtener más información acerca de la réplica de las columnas de identidad, vea Replicar columnas de identidad.

En la mayoría de los casos, la configuración predeterminada es apropiada, pero se puede cambiar si una aplicación requiere un comportamiento distinto. El área principal que hay que considerar son los desencadenadores. Por ejemplo, si define un desencadenador de inserción con la opción NOT FOR REPLICATION establecida, todas las inserciones del usuario activarán el desencadenador, pero no lo harán las inserciones de los agentes de réplica. Considere un desencadenador que inserta datos en una tabla de seguimiento: cuando el usuario inserta originalmente la fila, es apropiado que el desencadenador se active e inserte una fila en la tabla de seguimiento; sin embargo, no debería activarse cuando los datos se replican en el suscriptor, ya que se insertaría una fila innecesaria en la tabla de seguimiento.

Para especificar la opción NOT FOR REPLICATION

La opción NOT FOR REPLICATION se puede especificar de las siguientes formas:

Vea también

Conceptos

Consideraciones para todos los tipos de réplica

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

15 de septiembre de 2007

Contenido modificado:
  • Se indica cuándo se establece la opción NOT FOR REPLICATION.