sql >> Database >  >> RDS >> Sqlserver

Hoe alle beperkingen voor externe sleutels in SQL Server-database uit te schakelen - SQL Server / TSQL-zelfstudie, deel 77

Scenario:

U werkt als SQL Server-ontwikkelaar. U moet de scripts leveren om alle Foreign Key-beperkingen in de SQL Server-database uit te schakelen. Dit kan een scenario zijn waarin u eenmalige gegevens moet laden en u bent in orde als gegevens de referentiële integriteit schenden.

Oplossing:


Laten we de lijst met beperkingen voor externe sleutels ophalen uit een SQL Server-database voordat we het script voor uitschakelen genereren.

--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
 
 
 
 
 
 
 
 
Controleren of Foreign Key Constraint is in- of uitgeschakeld in SQL Server
 
Laten we nu een script genereren om de beperking van de externe sleutel in de SQL Server-database uit te schakelen

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
 
 
 
 
Script genereren om alle beperkingen voor externe sleutels in SQL Server-database uit te schakelen
 

Videodemo:alle beperkingen voor externe sleutels in SQL Server-database uitschakelen


  1. Oracle SQL Developer 21.4.2 en SQLcl 21.4.1 zijn nu beschikbaar

  2. Roep een set-retourfunctie met een array-argument meerdere keren aan

  3. Back-ups van verschillende instanties controleren

  4. SQLiteAssetHelper:Kan de database niet openen om te schrijven (zal alleen-lezen proberen)