Deshabilitar restricciones CHECK con instrucciones INSERT y UPDATE

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Puede deshabilitar una restricción CHECK para las transacciones INSERTyUPDATE en SQL Server mediante SQL Server Management Studio o Transact-SQL. Después de deshabilitar las restricciones CHECK, las posteriores inserciones o actualizaciones de la columna no se validan con las condiciones de la restricción. Use esta opción si sabe que los nuevos datos infringirán la restricción existente o si la restricción solo se aplica a los datos que ya están en la base de datos.

Para más información, consulte Restricciones CHECK.

Nota

Las restricciones CHECK están habilitadas y deshabilitadas con una instrucción ALTER TABLE, que siempre requiere un bloqueo de modificación del esquema (Sch-M). Los bloqueos Sch-M impiden el acceso simultáneo a la tabla. Para más información, consulte Bloqueos y ALTER TABLE.

Permisos

Requiere el permiso ALTER en la tabla.

Uso de SQL Server Management Studio

Para deshabilitar una restricción CHECK para las instrucciones INSERT y UPDATE

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

  2. Haga clic con el botón derecho en la restricción y seleccione Modificar.

  3. En la cuadrícula situada debajo de Diseñador de tablas, haga clic en Exigir para comandos INSERTs y UPDATEs y seleccione No en el menú desplegable.

  4. Haga clic en Cerrar.

Usar Transact-SQL

Para deshabilitar una restricción CHECK para las instrucciones INSERT y UPDATE

  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 los ejemplos siguientes en la ventana de consulta y haga clic en Ejecutar.

    USE AdventureWorks2022;  
    GO  
    ALTER TABLE Purchasing.PurchaseOrderHeader  
    NOCHECK CONSTRAINT CK_PurchaseOrderHeader_Freight;   
    GO