Scénario :
Vous travaillez en tant que développeur SQL Server / ETL. Vous devez charger un tas de données dans des tables de la base de données SQL Server. Les contraintes de vérification sont créées sur différentes tables. Il y a des chances que les données que vous allez charger ne soient pas qualifiées selon Check Constraint. L'entreprise souhaite que vous chargiez les données de toute façon, même si elles ne sont pas éligibles à la contrainte de vérification. Vous souhaitez désactiver temporairement toutes les contraintes dans la base de données SQL Server, puis charger les données, puis réactiver les contraintes de vérification.
Solution :
Le script ci-dessous peut être utilisé pour générer le script Désactiver la contrainte de vérification pour toutes les contraintes de vérification qui sont activées dans la base de données. Vous pouvez filtrer davantage les tables dans la clause where si vous ne souhaitez pas générer de script pour toutes les tables.
--Generate Script to Disable All Check Constraint in SQL Server Database Select DB_Name( ) AS DBName, Schema_Name(Schema_id) AS TableSchema, Object_name(parent_object_id) as TableName, définition, 'Alter Table [' + Schema_Name(Schema_id) + '].[' + Object_name(parent_object_id) + ']' + 'NOCHECK CONSTRAINT ' + '[' + NOM + ']' AS DisableCheckConstraint De sys.check_constraints où is_disabled=0
|
Comment générer des scripts pour désactiver toutes les contraintes de vérification dans la base de données SQL Server |
Copiez les résultats de la colonne DisableCheckConstraint et exécutez-les dans SSMS pour désactiver les contraintes de vérification requises.
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB]ALTER TABLE [dbo].[Employee] NOCHECK CONSTRAINT [CK__Employee__FName__7A672E12 ]
Démo vidéo :comment générer des scripts pour désactiver toutes les contraintes de vérification dans SQL Server