Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como gerar script para habilitar todas as restrições de chave estrangeira no banco de dados SQL Server - Tutorial SQL Server / TSQL Parte 78

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