sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan genereres script for at aktivere alle fremmednøglebegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 78

Scenarie:

Du arbejder som SQL Server-udvikler. Du skal forberede scripts for at aktivere alle Foreign Key Constraint i en database, som er deaktiveret. Dette kan ske, måske har nogen deaktiveret Foreign Key Constraints for en dataindlæsning, hvor de er ligeglade med krænkelse af referenceintegritet og glemte at aktivere dem senere.


Løsning:

Lad os først og fremmest få listen over fremmednøglebegrænsninger med status ved at bruge nedenstående forespørgsel

--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
 
 
 
 
Sådan kontrollerer du, om Foreign Key Constraint er deaktiveret eller aktiveret i SQL Server-databasen
 Lad os nu generere scripts for at aktivere Foreign Key Constraints, som er deaktiveret i SQL Server Database ved at bruge nedenstående forespørgsel.

USE YourdatabaseName
go
-- 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
 where is_disabled=1
 
 
 
 
Sådan genereres script for at aktivere alle fremmednøglebegrænsninger i SQL Server-databasen
 
 Kopier resultaterne og kør i SSMS for at aktivere deaktiverede Foreign Key Constraints i SQL Server Database.

Videodemo :Sådan genereres script for at aktivere alle Foreign Key Constraints i SQL Server


  1. Opgradering til den nyeste Jira med den seneste version af MariaDB Server

  2. Sådan opdaterer og sletter du listen. Se data i SQLite-database med kliklytter?

  3. Hvordan indsætter man pandas dataramme via mysqldb i databasen?

  4. Hvad er nyt i PostgreSQL 11