Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Nader Lana

Exibindo resultado de um cursor

Recommended Posts

Olá galera...

 

Estou querendo exibir os resultados de um cursor...

 

Mas não queria usar um select dentro do WHILE do cursor, como no código abaixo:

 

Declare Teste cursor For	SELECT Nome, Telefone, Email FROM Clientes	order by NomeOpen TesteFetch Next From Horarios INTO @Nome, @Telefone, @EmailWhile @@FETCH_STATUS = 0Begin	Select @Nome, @Telefone, @Email	Fetch Next From Horarios INTO @Nome, @Telefone, @EmailEndClose TesteDeallocate Teste

Dessa forma eu tenho vários selects....

 

Queria tudo em um resultado só..

 

Teria alguma forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falai Tiago,

 

uma solução seria, criar uma tabela virtual e ir adicionando os valores nesta.

declare @tabVirtual table (Nome varchar(50), Telefone varchar(50), Email varchar(50))
dai você jogaria os dados no while

insert into @tabVirtual (Nome, Telefone, Email) values (@Nome, @Telefone, @Email)
e no final é so dar o select

select * from @tabVirtual
pode-se tb. dar um set nocount on antes de iniciar o cursor, pra tirar os avisos do insert

 

 

lembre-se: sempre que possível evite o uso de cursores, pois são muito pesados, veja artigo interessante sobre isto: http://www.mcdbabrasil.com.br/modules.php?...=article&sid=24

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eriva...

 

quero fazer um WHERE dentro do execute com um campo que é do tipo varchar

 

Tentei de duas formas:

 

execute('select * from ' + @Tabela + ' where Nome = ' + @Nome + '')

e assim:

 

execute('select * from ' + @Tabela + ' where Nome = '' + @Nome + ''')

 

Nenhuma das duas obtive o resultado.

 

Como faço?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai, tenta assim

execute('select * from ' + @Tabela + ' where Nome = ''' + @Nome + '''')
dica: pra te ajudar antes de fazer o execute faça um select na instrução pra você verificar o que será executado, dai com o resultado do select você executa em outra tela do sql query analyser

select ('select * from ' + @Tabela + ' where Nome = ''' + @Nome + '''')

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.