日期:2014-05-18  浏览次数:20410 次

游标问题,,来者有分
那位弟兄知道   ,,在SQL过程中怎么把exec结果放到游标中去,,
先谢谢了
exec( 'select   top   '+@topNum+ '   magId   from   [mag_detail]   '+@where)
把这句的执行结果放到游标中
谢谢了    
就好像样(执行不过去)
declare   MyCURSOR   CURSOR
LOCAL   SCROLL     SCROLL_LOCKS
for   exec( 'select   top   '+@topNum+ '   magId   from   [mag_detail]   '+@where)

------解决方案--------------------
用动态游标可以解决问题

可惜我很久没用忘了,简单点说就是不会


所以我只能说一个比较苯的方法

declare @tmp_table table(magId int) -- 自己定义一个表变量放结果,还要什么字段自己加
insert into @tmp_table exec( 'select top '+@topNum+ ' magId from [mag_detail] '+@where) --将动态语句返回的结果集放进表变量

declare MyCURSOR CURSOR
LOCAL SCROLL SCROLL_LOCKS
for @tmp_table
...


期待LX能给个动态游标出来,我也复习复习功课
------解决方案--------------------
insert into @tmp_table exec( 'select top '+@topNum+ ' magId from [mag_detail] '+@where) --将动态语句返回的结果集放进表变量

---------------------------------
动态语句返回的结果集是不能放进表变量的
------解决方案--------------------
这样处理:

exec( '
declare MyCURSOR CURSOR
LOCAL SCROLL SCROLL_LOCKS
select top '+@topNum+ ' magId from [mag_detail] '+@where+
'... '
)