segunda-feira, 15 de abril de 2013

Desabilitar temporariamente foreign key SQL Server

No SQL Server, algumas vezes é preciso alterar dados de tabelas relacionadas e com a existência de foreigns keys se torna uma tarefa impossível, porque quando você tenta fazer update na tabela 1 recebe erro por existirem dados relacionados na tabela 2 e vice e versa.

Para quem precisa, assim como eu eventualmente preciso, fica a dica para desabilitar foreign key temporariamente. (E tem que ser mesmo temporária hein!)

Nota: É possível desabilitar todas as foreign keys de uma vez ou alguma específica, conforme os exemplos:

Todas as foreigns keys
-- 1º) Desabilita TODAS as foreign key de uma tabela SQL Server
ALTER TABLE [NomeDaTabele] NOCHECK CONSTRAINT ALL

-- 2º) Habilita TODAS as foreign key de uma tabela SQL Server novamente
ALTER TABLE [NomeDaTabela] CHECK CONSTRAINT ALL


Uma foreign key específica
-- 1º) Desabilita uma foreign key específica de uma tabela SQL Server
ALTER TABLE [NomeDaTabela] NOCHECK CONSTRAINT [NomeDaConstraint]

-- 2º) Habilita uma foreign key específica de uma tabela SQL Server
ALTER TABLE [NomeDaTabela] CHECK CONSTRAINT [NomeDaConstraint]


Mais uma vez atento para não esquecer de habilitar a foreign key depois.

É isso aí, simples e objetivo! Espero que também seja útil!

13 comentários:

  1. SHOW DE BOLA! TAVA COM UMA BRONCA GRANDE AQUI.

    ResponderExcluir
  2. Mário, parabéns pela objetividade além da precisão.
    Att, Bruno Ribeiro - brumyno@gmail.com

    ResponderExcluir
  3. Muito obrigado Mário!
    Ajudou muito!
    Depois dá um pulo no meu blog, também tenho umas coisas diretas lá...
    https://desenvolvimentowebemobile.blogspot.com/

    ResponderExcluir
    Respostas
    1. Obrigado Zeca pela visita pela citação no seu blog, diga-se de passagem muito bom!!!! Abs!

      Excluir