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

Come disabilitare tutti i vincoli di chiave esterna nel database di SQL Server - Tutorial SQL Server / TSQL Parte 77

Scenario:

Stai lavorando come sviluppatore di SQL Server, devi fornire gli script per disabilitare tutti i vincoli di chiave esterna nel database di SQL Server. Questo potrebbe essere uno scenario in cui devi caricare dati una tantum e sei a posto se i dati violano l'integrità referenziale.

Soluzione:


Otteniamo l'elenco dei vincoli di chiave esterna da un database di SQL Server prima di generare lo script disable.

--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
 
 
 
 
 
 
 
 
Come verificare se il vincolo della chiave esterna è abilitato o disabilitato in SQL Server
 
Ora generiamo uno script per disabilitare il vincolo della chiave esterna nel database di SQL Server

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
 
 
 
 
Come generare uno script per disabilitare tutti i vincoli di chiave esterna nel database di SQL Server
 

Video demo:come disabilitare tutti i vincoli di chiave esterna nel database di SQL Server