Página Inicial > SQL Server > NoCheck Constraint

NoCheck Constraint

Ontem um amigo daqui da empresa foi rodar um delete e para sua surpresa recebeu a seguinte mensagem.

 

delete from tabela where ID = 3

 

Msg 8630, Level 17, State 34, Line 1

Internal Query Processor Error: The query processor encountered an unexpected error during execution.

 

Ou seja o otimizador não agüentou o tranco, tudo bem que a tabela tem apenas 418 foreign keys, ou seja, para poder efetuar o delete o SQL terá que ler nas 418 tabelas se o ID = 3 existe pois senão ele não pode deixar o delete acontecer.

 

Como eu tenho certeza de que não existe nenhuma referencia com as outras tabelas para resolver o problema tive que desabilitar todas constraints das tabelas e efetuar o delete e depois habilitar as constraints.

 

– Executei este comando para ver as foreign keys

sp_fKeys corcc002

 

Copiei a coluna fkTable_Name e criei um comando para desabilitar e outro para habilitar todas as constraints desta tabelas. Segue um exemplo do comando

 

– Comando para desabilitar foreign key

ALTER TABLE TabelaB NOCHECK CONSTRAINT ALL

 

– Comando para habilitar foreign key

ALTER TABLE TabelaB CHECK CONSTRAINT ALL

About these ads
CategoriasSQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 63 outros seguidores

%d blogueiros gostam disto: