Scénario :
Vous travaillez en tant que développeur SQL Server, vous devez fournir les scripts pour désactiver toutes les contraintes de clé étrangère dans la base de données SQL Server. Il peut s'agir d'un scénario dans lequel vous devez charger des données ponctuelles et tout va bien si les données violent l'intégrité référentielle.
Solution :
Obtenons la liste des contraintes de clé étrangère à partir d'une base de données SQL Server avant de générer le script de désactivation.
--Obtenir la liste des contraintes de clé étrangère si activées ou désactivées USE YourDatabaseName GO Sélectionnez Schema_name(Schema_id) comme SchemaName, object_name(Parent_object_id) comme TableName, nom comme ForeignKeyConstraintName, Case When Is_disabled=1 Then 'No' ELSE 'Yes' End as IsEnabled from sys.foreign_keys
|
Comment vérifier si la contrainte de clé étrangère est activée ou désactivée dans SQL Server |
Générons maintenant un script pour désactiver la contrainte de clé étrangère dans la base de données SQL Server
USE YourdatabaseNamego-- Drop Foreign Key Constraints Script SELECT distinct 'ALTER TABLE ' + '['+ Schema_name( FK.schema_id) + '].['+ OBJECT_NAME(FK.parent_object_id) + ']'+ ' NOCHECK CONSTRAINT ' + '[' + FK.name + ']' AS DisableConstraintQuery FROM sys.foreign_keys AS FK where is_disabled=0
|
Comment générer un script pour désactiver toutes les contraintes de clé étrangère dans la base de données SQL Server |
Démonstration vidéo :Comment désactiver toutes les contraintes de clé étrangère dans la base de données SQL Server