Cenário:
Você está trabalhando como desenvolvedor do SQL Server, você precisa preparar scripts para habilitar todas as restrições de chave estrangeira em um banco de dados que estão desabilitadas. Isso pode acontecer, talvez alguém tenha desabilitado as restrições de chave estrangeira para um carregamento de dados em que não se importa com a violação da integridade referencial e esqueceu de habilitá-las mais tarde.
Solução:
Antes de tudo, vamos obter a lista de restrições de chave estrangeira com status usando a consulta abaixo
--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
 |
Como verificar se a restrição de chave estrangeira está desabilitada ou habilitada no banco de dados SQL Server |
Agora vamos gerar scripts para habilitar as Restrições de Chave Estrangeira que estão desabilitadas no Banco de Dados SQL Server usando a consulta abaixo.
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
 |
Como gerar script para habilitar todas as restrições de chave estrangeira no banco de dados SQL Server |
Copie os resultados e execute no SSMS para habilitar restrições de chave estrangeira desabilitadas no banco de dados SQL Server.
Demonstração em vídeo:como gerar script para habilitar todas as restrições de chave estrangeira no SQL Server