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

Categorias:SQL 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:

Logo do WordPress.com

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

Foto do Facebook

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

Conectando a %s

%d blogueiros gostam disto: