Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment désactiver les contraintes pour toutes les tables et l'activer ?

EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO

Vous pouvez également faire ceci :

EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
GO

Pour les activer ensuite

EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
GO

-- SQL enable all constraints - enable all constraints sql server
-- sp_MSforeachtable is an undocumented system stored procedure
EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
GO

Modifier :
Si la désactivation des contraintes ne suffit pas, vous devrez supprimer les contraintes.

Si vous supprimez et recréez les tables, vous devrez recréer les contraintes de clé étrangère par la suite.

Si vous avez juste besoin de supprimer les contraintes, cela pourrait vous être utile :
Contrainte de clé étrangère SQL DROP TABLE

Si vous avez besoin d'écrire un script pour supprimer et créer les contraintes, vous trouverez peut-être mon message ici plus utile :
SQL Server :comment obtenir une référence de clé étrangère à partir d'information_schema ?