Habilitando e Desabilitando Constraint Restrições no SQL

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.