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

Comment désactiver toutes les contraintes de clé étrangère dans la base de données SQL Server - Tutoriel SQL Server / TSQL Partie 77

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