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