Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So deaktivieren Sie alle Check Constraints in der SQL Server-Datenbank - SQL Server / TSQL-Tutorial Teil 87

Szenario:

Sie arbeiten als SQL Server / ETL-Entwickler. Sie müssen eine Reihe von Daten in Tabellen in der SQL Server-Datenbank laden. Check Constraints werden für verschiedene Tabellen erstellt. Es besteht die Möglichkeit, dass die Daten, die Sie laden möchten, nicht gemäß Check Constraint qualifiziert sind. Das Unternehmen möchte, dass Sie die Daten trotzdem laden, auch wenn sie sich nicht mit Check Constraint qualifizieren. Sie möchten alle Einschränkungen in der SQL Server-Datenbank vorübergehend deaktivieren und dann die Daten laden und dann die Check Constraints wieder aktivieren.


Lösung:

Das folgende Skript kann verwendet werden, um ein Skript zum Deaktivieren von Check Constraints für alle Check Constraints zu generieren, die in der Datenbank aktiviert sind. Sie können die Tabellen in der where-Klausel weiter filtern, wenn Sie kein Skript für alle Tabellen generieren möchten.

 --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,
  definition,
  'Alter Table [' + Schema_Name(Schema_id) 
    + '].[' + Object_name(parent_object_id) 
    + ']' + ' NOCHECK  CONSTRAINT ' 
    + '[' + NAME + ']' AS DisableCheckConstraint
 From sys.check_constraints
 where is_disabled=0
 
 
 
 
Generieren von Skripts zum Deaktivieren aller Check Constraints in der SQL Server-Datenbank
 Kopieren Sie die Ergebnisse aus der Spalte DisableCheckConstraint und führen Sie sie in SSMS aus, um die erforderlichen Check Constraints zu deaktivieren.
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB]

ALTER TABLE [dbo].[Employee] NOCHECK CONSTRAINT [CK__Employee__FName__7A672E12]


Video-Demo:So generieren Sie Skripts zum Deaktivieren aller Check Constraints in SQL Server