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

