Usuário com melhor resposta
dúvidas com cursor

Pergunta
-
Bom dia a todos,
tenho uma procedure que monta uma query
teria como eu executar essa query montada dentro de um cursor?
Tentei fazer como o exemplo abaixo e não obtive sucesso.
DECLARE RELAT CURSOR FOR
execute sp_executesql @SQL
OPEN RELAT
FETCH NEXT FROM RELAT INTO @VALOR1, @VALOR2, @VALOR3, @VALOR4, @VALOR5Tem como eu fazer isso?
Obrigado desde já.
quinta-feira, 9 de agosto de 2007 14:51
Respostas
-
Rômulo, eu desconheço como fazer dessa forma como você está precisando. Mas da para contornar usando uma tabela temporária: Fiz um exemplo usando o banco northwind, espero que ajude.
[]´s
Adriano
declare @sql nvarchar(1000), @Codigo int, @Nome varchar(70)
if exists(select * from tempdb..sysobjects where name like '%tabela%')
drop table #tabela
Create table #Tabela (Codigo int, Nome varchar(70))
set @sql = ' select ProductID, ProductName from Products '
insert into #tabela
execute sp_executesql @sql
declare CursorProdutos cursor local static scroll for
select Codigo, Nome from #tabela
open CursorProdutos
fetch first from CursorProdutos into @Codigo, @Nome
while @@fetch_status = 0
begin
print @nome
fetch next from CursorProdutos into @Codigo, @Nome
endsexta-feira, 10 de agosto de 2007 13:07
Todas as Respostas
-
Rômulo, eu desconheço como fazer dessa forma como você está precisando. Mas da para contornar usando uma tabela temporária: Fiz um exemplo usando o banco northwind, espero que ajude.
[]´s
Adriano
declare @sql nvarchar(1000), @Codigo int, @Nome varchar(70)
if exists(select * from tempdb..sysobjects where name like '%tabela%')
drop table #tabela
Create table #Tabela (Codigo int, Nome varchar(70))
set @sql = ' select ProductID, ProductName from Products '
insert into #tabela
execute sp_executesql @sql
declare CursorProdutos cursor local static scroll for
select Codigo, Nome from #tabela
open CursorProdutos
fetch first from CursorProdutos into @Codigo, @Nome
while @@fetch_status = 0
begin
print @nome
fetch next from CursorProdutos into @Codigo, @Nome
endsexta-feira, 10 de agosto de 2007 13:07 -
Rômulo,
Deixa eu ver se entendi você deseja criar um cursor e armazenar esta cursor em uma variável e depois executar esta variável através da stored procedure sp_executesql.
É isso?
sexta-feira, 10 de agosto de 2007 13:21Moderador -
Junior,
Na verdade a query será gerada dentro da procedure em uma variável e executada pelo sp_executesql para alimentar um cursor.
Obrigado pela ajuda mais a resposta do Adriano já serve para resolver o meu problema.
Att.
segunda-feira, 13 de agosto de 2007 11:21 -
Adriano,
Obrigado pela ajuda. Sua resposta serviu para a resolução do meu problema.
Att.
segunda-feira, 13 de agosto de 2007 11:22 -
You are welcome.segunda-feira, 13 de agosto de 2007 11:43