declare cursor for后面的sql语句是个变量,怎样执行?

alexzxt 2009-03-19 09:21:23
各位,我需要在存储过程中使用游标,但问题是我declare aa cursor for 后面跟的sql语句并不是一个固定内容,而是存在变量@bb里面的,如果我直接写declare aa cursor for @bb是会报语法错误的,即使写declare aa cursor for EXEC @bb也不行,请问我该怎样写呢?谢谢。
...全文
3287 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
greedwind 2010-10-05
  • 打赏
  • 举报
回复
http://greedwind.blog.163.com/blog/static/278310652010950212729/
lcw321321 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]

exec ('declare aa cursor for '+@bb)
但这样写又有一个问题,你什么读取游标的值?

象这种问题建议你用临时表解决
[/Quote]
这个,嗯,我回头研究下
sych888 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 htl258 的回复:]
SQL code
create proc sp
@bb varchar(200)
as
set nocount on
declare @s varchar(8000)
set @s='
declare aa cursor for '+@bb

exec(@s)
[/Quote]
学习..........
kitajima-- 2010-08-09
  • 打赏
  • 举报
回复
声明游标后,执行sql最终要存放在变量中,
如下写法:

declare bb cursor for
select id ,name from table1
open bb
fetch next from bb into @id,@name
while ( @@Fetch_Status=0 )
begin
set .....
end
ks_reny 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 alexzxt 的帖子:]
各位,我需要在存储过程中使用游标,但问题是我declare aa cursor for 后面跟的sql语句并不是一个固定内容,而是存在变量@bb里面的,如果我直接写declare aa cursor for @bb是会报语法错误的,即使写declare aa cursor for EXEC @bb也不行,请问我该怎样写呢?谢谢。
[/Quote]
楼主把你的需求说出来,让这里的高手们帮你解决。
Andy__Huang 2009-03-19
  • 打赏
  • 举报
回复
exec ('declare aa cursor for '+@bb)
但这样写又有一个问题,你什么读取游标的值?

象这种问题建议你用临时表解决

liangCK 2009-03-19
  • 打赏
  • 举报
回复
EXEC('DECLARE aa CURSOR FOR '+@bb);

--然后再打开cursor,再使用。
htl258_Tony 2009-03-19
  • 打赏
  • 举报
回复
create proc sp
@bb varchar(200)
as
set nocount on
declare @s varchar(8000)
set @s='
declare aa cursor for '+@bb

exec(@s)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧