Cenário:
Você está trabalhando como desenvolvedor do SQL Server, você precisa fornecer os scripts para desabilitar toda a restrição de chave estrangeira no banco de dados do SQL Server. Este pode ser um cenário em que você precisa carregar dados uma vez e não há problema se os dados violarem a integridade referencial.Solução:
Vamos obter a lista de restrições de chave estrangeira de um banco de dados SQL Server antes de gerarmos o script de desabilitação.
--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á habilitada ou desabilitada no SQL Server |
Agora vamos gerar script para desabilitar restrição de chave estrangeira no banco de dados 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
Como gerar script para desabilitar todas as restrições de chave estrangeira no banco de dados SQL Server |
Demonstração em vídeo:como desabilitar todas as restrições de chave estrangeira no banco de dados SQL Server