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

Come generare uno script per abilitare tutti i vincoli di chiave esterna nel database di SQL Server - Tutorial SQL Server / TSQL Parte 78

Scenario:

Stai lavorando come sviluppatore di SQL Server, devi preparare gli script per abilitare tutti i vincoli di chiave esterna in un database che sono disabilitati. Questo potrebbe accadere, forse qualcuno ha disabilitato i vincoli di chiave esterna per un carico di dati in cui non si preoccupa della violazione dell'integrità referenziale e si è dimenticato di abilitarli in seguito.


Soluzione:

Prima di tutto otteniamo l'elenco dei vincoli di chiave esterna con stato utilizzando la query seguente

--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 è disabilitato o abilitato nel database di SQL Server
 Ora generiamo script per abilitare i vincoli di chiave esterna che sono disabilitati nel database di SQL Server utilizzando la query seguente.

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
 
 
 
 
Come generare uno script per abilitare tutti i vincoli di chiave esterna nel database di SQL Server
 
 Copia i risultati ed esegui in SSMS per abilitare i vincoli di chiave esterna disabilitati nel database di SQL Server.

Video demo:come generare uno script per abilitare tutti i vincoli di chiave esterna in SQL Server