Inquiridor
Erro em deleção de registro

Pergunta
-
Bom Dia a todos, estou com um problema no Microsoft SQL Server Management Studio version 9.00.3042.00.
Tenho uma tabela que independente da quantidade de registros, eu preciso deletar um único registro,
"DELETE FROM TABELA WHERE Codigo = '1'", mas quando executo a query o sistema retorna a seguinte mensagem.
The query processor ran out of stack space during query optimization. Please simplify the query.
essa tabela tem cerca de 316 Foreign Key dependentes dessa tabela e ela tem cerca 46 Foreign Key apontando para outras tabela.
preciso realizar essa deleção, agradeço qualquer ajuda.
Desde ja obrigado.
Todas as Respostas
-
JMCandido,
Se eu entendi esta tabela possui relacionamento com outras tables, ou seja, se você excluir este registro todas as tables dependentes deste registro serão afetuadas.
Neste caso, você deve excluir primeiramente este registro nas tables dependentes antes de excluir na tabela principal.
Você utilizou no relacionamento entre estas as opções Update Cascade ou Delete Cascade.
-
Olá!!!
-
Candido...
Más notícias... Encontrei isso no MSDN americano...
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=808388&SiteID=1
Lá diz que o problema deve estar acontecendo pq ultrapassou o limite de FKs que podem ser gerenciadas pelo Query Processor, que é 253.
Solução, simplificar e diminuir seus relacionamentos.
Abraço!
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 28 de dezembro de 2018 23:41
-
Ola Alexandre VM e Junior Galvão, com relação aos registros dependentes dessas ForeignKeys, com certeza não existe nenhum, pois foi realizado a inserção de dados apenas nessa tabela, ainda em carater de testes de base para migração para a versão 2005 do SQL Server, por isso podemos afirmar não existir dados em outras tabelas dependentes.
Alexandre eu ja tinha lido alguma coisa a respeito dessa restrição da quantidade de FK's que podem ser gerenciadas, e eu não tenho como diminuir a quantidade de FK's por vários motivos que nem precisamos comentar, é um sistema grande, cerca de 2000 tabelas, A idéia de simplificar não sei também se seria viável, envolve inumeras questões, mas se não houver outra solução ou previsào de outra solução, não nos resta muitas alternativas, fáceis ou não, deverão ser avaliadas.
Será que existe alguma outra forma de realizar operações de deleção nessas situações, alguma coisa que possamos configurar, ou isso depende mesmo da microsoft alterar a quantidade de FK's gerenciadas pelo Query Processor.
Desde ja agredeço a atenção e colaboraçào de todos.
-
Como esta é uma restrição interna do sistema, ficamos sem saída. Não temos como "editar" essa restrição. Eu irei verificar se no SQL 2008 esta restrição continua a mesma, imagino que tenha mudado, já que nele não teremos mais limite de tamanho de registro, por exemplo. Vou verificar e coloco aqui a informação.
Abraço
-
-
Boa tarde Alexandre!
Sei que se trata de um post antigo, porém estou vivenciando esse problema atualmente em minha base de dados.
Através do sistema TOTVS executo o processo de exclusão de um registro e é apresentado o erro citado nessa discussão.Utilizamos na empresa o SQL SERVER 2008 R2 SP1.
Em alguns artigos consultados existem informações que estão relacionadas a quantidade de FK da tabela, porém a no meu caso existem apenas 8 FK'S referenciadas.
Existe alguma correção para a falha?
Agradeço desde já apela atenção.
- Sugerido como Resposta Junior Galvão - MVPMVP sábado, 4 de novembro de 2017 11:47
- Não Sugerido como Resposta Junior Galvão - MVPMVP sábado, 4 de novembro de 2017 11:47