Para modificar la estructura de una base de datos de Microsoft SQL
Server, puede ser necesario desactivar temporalmente las constraints que tenga.
Por ejemplo, para vaciar los datos de una base de datos, sin tener que pensar
el orden correcto para que no salten las restricciones si tenemos ya claro que
queremos vaciarla entera.
Nota: Se aplica a partir de la versión 2016
En SQL Server podemos desactivarlas de una en una, o bien deshabilitar constraints con una instrucción todas las de una tabla.
-- Para deshabilitar una única constraint
ALTER TABLE MyTable NOCHECK CONSTRAINT MyConstraint
-- Para habilitar una única constraint
ALTER TABLE MyTable CHECK CONSTRAINT MyConstraint
-- Para deshabilitar todas las
constraints de una tabla
ALTER TABLE MyTable NOCHECK CONSTRAINT ALL
-- Para desabilitar todos los constraint
de una tabla
ALTER TABLE MyTable CHECK CONSTRAINT ALL
Recuerda
que, si has cambiado datos de la tabla, al volver a habilitar las constraints,
estos nuevos datos deben cumplirla, sino dará error y no podrás volver a
habilitarla si no lo arreglas.
Nota:
No se puede deshabilitar el PK de una tabla.

Importante:
Puede
deshabilitar una restricción de clave externa durante las transacciones de
INSERTAR y ACTUALIZAR en SQL Server 2017 utilizando SQL Server Management
Studio o Transact-SQL. Utilice esta opción si sabe que los nuevos datos no
violarán la restricción existente o si la restricción se aplica solo a los
datos que ya están en la base de datos.
Limitaciones:
Después de
deshabilitar estas restricciones, las futuras inserciones o actualizaciones de
la columna no se validarán con respecto a las condiciones de restricción.
Comentarios
Publicar un comentario