Deshabilitar restricciones CHECK para la replicación

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsBase de datos SQL en Microsoft Fabric

Puede deshabilitar las restricciones CHECK en SQL Server usando SQL Server Management Studio o Transact-SQL. También puede deshabilitar explícitamente las restricciones CHECK para la replicación, lo que puede resultar útil si se publican datos de una versión anterior de SQL Server.

Note

Si una tabla se publica mediante replicación, se deshabilitan automáticamente las restricciones CHECK para las operaciones realizadas por los agentes de replicación. Cuando un agente de replicación realiza una inserción, actualización o eliminación en un suscriptor, no se comprueba la restricción. En cambio, sí se comprueba cuando lo hace un usuario. La restricción se deshabilitará para el agente de replicación porque ya se comprobó en el publicador cuando se insertaron, actualizaron o eliminaron los datos originalmente. Para obtener más información, vea Especificar opciones de esquema.

Permissions

Requiere el permiso ALTER en la tabla.

Uso de SQL Server Management Studio

Para deshabilitar una restricción CHECK para la replicación

  1. En el Explorador de objetos, expanda la tabla con la restricción CHECK que desee modificar y, a continuación, expanda la carpeta Restricciones .

  2. Haga clic con el botón derecho en la restricción CHECK que quiera cambiar y, después, haga clic en Modificar.

  3. En el cuadro de diálogo Comprobar restricciones, en Diseñador de tablas, seleccione No en Aplicar en la replicación.

  4. Haga clic en Cerrar.

Uso de Transact-SQL

Para deshabilitar una restricción CHECK para la replicación

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra de Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En el ejemplo se crea una tabla con una IDENTITY columna y una restricción CHECK en la tabla. A continuación, el ejemplo elimina la restricción y la vuelve a crear, y especifica la cláusula NOT FOR REPLICATION.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE dbo.doc_exd (column_a int IDENTITY (1,1)   
    CONSTRAINT exd_check CHECK (column_a > 1))   
    
    ALTER TABLE dbo.doc_exd   
    DROP CONSTRAINT exd_check;   
    GO  
    ALTER TABLE dbo.doc_exd    
    ADD CONSTRAINT exd_check CHECK NOT FOR REPLICATION (column_a > 1);  
    

Para obtener más información, vea ALTER TABLE (Transact-SQL).