Ir para conteúdo
Fórum Script Brasil
  • 0

cursor aninhado


Isaa

Pergunta

Boa tarde... eu não uma especialista em sql, mas to tentando...

eu preciso fazer uma proc que liste as tabelas que tenham coluna de estado em tabelas criadas pelo usuario, para depois varre-las e deletar o registro que eu preciso...

o primeiro cursor que lista essas tabelas está funcionando... mas o que deveria fazer a varredura em cada tabela para deletar os registros não funciona por um problema que aparentemente deveria ser simples... ele fala que a variavel @tab não foi declarada (Must declare the table variable "@tab".). Tentei fazer varios testes com ela separada em outra procedure, e sempre aparece a mesma coisa... Tentei declarar por paramentro da procedure... tentei declarar uma variavel comum... acho que tentei de tudo!!!!

se puderem me ajudar, eu agradeceria muito... já olhei trezentos sites de cursor aninhado e em todos os exemplos eles conseguem fazer o select usando a variavel que voltou do primeiro fetch...

segue o codigo:

alter procedure del_est
(@est varchar(3))
as begin declare @tab varchar(15), @col_name varchar (15)
set @tab = ''
set @col_name = ''
declare del_esta cursor for
(select sys.name, col.name
from sysobjects sys,
syscolumns col
where sys.xtype='u' and col.id = sys.id and col.name
like '%est%')

open del_esta
fetch next from del_esta into @tab, @col_name

WHILE @@FETCH_STATUS = 0
BEGIN declare del_esta_tab cursor for (select * from @tab) open del_esta_tab
fetch next from del_esta_tab while @@fetch_status = 0
begin delete from @tab where @col_name = @est
end --while do del_esta_tab
CLOSE del_esta_tab
DEALLOCATE del_esta_tab

END -- while do del_esta
CLOSE del_esta
DEALLOCATE del_esta

end--proc

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...