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

So deaktivieren Sie alle Fremdschlüsselbeschränkungen in der SQL Server-Datenbank - SQL Server / TSQL-Tutorial Teil 77

Szenario:

Sie arbeiten als SQL Server-Entwickler. Sie müssen die Skripts bereitstellen, um alle Foreign Key Constraints in der SQL Server-Datenbank zu deaktivieren. Dies könnte ein Szenario sein, in dem Sie einmalige Daten laden müssen und Sie sind in Ordnung, wenn Daten die referenzielle Integrität verletzen.

Lösung:


Lassen Sie uns die Liste der Fremdschlüsseleinschränkungen von einer SQL Server-Datenbank abrufen, bevor wir das Deaktivierungsskript generieren.

--Get List of Foreign Key Constraints if Enabled or Disabled
    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
 
 
 
 
 
 
 
 
So überprüfen Sie, ob die Fremdschlüsselbeschränkung in SQL Server aktiviert oder deaktiviert ist
 
Generieren wir nun ein Skript zum Deaktivieren von Foreign Key Constraints in der SQL Server-Datenbank

USE YourdatabaseName
go
-- 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
 
 
 
 
Wie man ein Skript generiert, um alle Fremdschlüsseleinschränkungen in der SQL Server-Datenbank zu deaktivieren
 

Video-Demo:So deaktivieren Sie alle Foreign Key Constraints in der SQL Server-Datenbank