读书人

游标有关问题,来者有分

发布时间: 2012-02-19 19:43:38 作者: rapoo

游标问题,,来者有分
那位弟兄知道 ,,在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+
'... '
)

读书人网 >SQL Server

热点推荐