Compartir vía


Deshabilitar restricciones CHECK con instrucciones INSERT y UPDATE

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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