Nesse post irei mostrar como habilitar e desabilitar CONSTRAINT no SQL.
Ás vezes você precisa realizar algum INSERT, UPDATE, DELETE, ou aglum outro comando no seu Banco de Dados e devido alguma restrição inserida na tabela/coluna você fica impedido de realizar.
The INSERT statement conflicted with the FOREIGN KEY constraint “NOME_DA_CONSTRAINT”
The conflict occurred in database “NOME_DA_BASE”, table “NOME_DA_TABELA”, column ‘NOME_DA_COLUNA’
Ou talvez por algum outro motivo você deseja HABILITAR (CHECK) ou DESABILITAR(NOCHECK) alguma CONSTRAINT.
Segue abaixo os comandos para realizar a tarefa:
Para Ativar ou Desativar uma CONTRAINTs, execute a seguinte Instrução SQL:
ALTER TABLE [Nome da Tabela] NOCHECK CONSTRAINT [Nome da Constraint] ALTER TABLE [Nome da Tabela] CHECK CONSTRAINT [Nome da Constraint]
Para Ativar ou Desativar todas as CONTRAINTs de uma tabela, execute a seguinte Instrução SQL:
ALTER TABLE [Nome da Tabela] NOCHECK CONSTRAINT ALL ALTER TABLE [Nome da Tabela] CHECK CONSTRAINT ALL
Conceitos Adicionais:
- Quando você Desativa uma CONSTRAINT todas as regras que ela gerencia não são mais executadas nos próximos Inserts.
- Quando você Ativa uma CONSTRAINT as linhas Inseridas não são revalidadas pela CONSTRAINT.
- Evite Desativar uma CONSTRAINT, isso pode causa uma perda de Confiabilidade dos dados.