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

Comment générer un script pour activer toutes les contraintes de clé étrangère dans la base de données SQL Server - Tutoriel SQL Server / TSQL Partie 78

Scénario :

Vous travaillez en tant que développeur SQL Server, vous devez préparer des scripts pour activer toutes les contraintes de clé étrangère dans une base de données qui sont désactivées. Cela pourrait arriver, peut-être que quelqu'un a désactivé les contraintes de clé étrangère pour un chargement de données où il ne se soucie pas de la violation de l'intégrité référentielle et a oublié de les activer plus tard.


Solution :

Tout d'abord, obtenons la liste des contraintes de clé étrangère avec statut en utilisant la requête ci-dessous

--Obtenir la liste des contraintes de clé étrangère si activées ou désactivées USE YourDatabaseName GO Select Schema_name(Schema_id) as SchemaName , object_name(Parent_object_id) as TableName, name as 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 désactivée ou activée dans la base de données SQL Server
 Générons maintenant des scripts pour activer les contraintes de clé étrangère qui sont désactivées dans la base de données SQL Server en utilisant la requête ci-dessous.

USE YourdatabaseNamego-- Enable Foreign Key Constraints Script SELECT distinct 'ALTER TABLE ' + ' ['+ Schema_name(FK.schema_id) + '].['+ OBJECT_NAME(FK.parent_object_id) + ']'+ ' CHECK CONSTRAINT ' + '[' + FK.name + ']' AS EnableConstraintQuery FROM sys.foreign_keys AS FK où is_disabled=1
 
 
 
 
Comment générer un script pour activer toutes les contraintes de clé étrangère dans la base de données SQL Server
 
 Copiez les résultats et exécutez-les dans SSMS pour activer les contraintes de clé étrangère désactivées dans la base de données SQL Server.

Démonstration vidéo :comment générer un script pour activer toutes les contraintes de clé étrangère dans SQL Server