首页 新闻 会员 周边 捐助

sql 游标的问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2010-05-25 11:28
Create PROCEDURE my_sql
AS
     declare @id int,@loginname varchar(20),@website varchar(100)
     declare rs cursor for select top 50 id,loginname,website from union_user
    
     open rs
     fetch next from rs
     into @id,@loginname,@website
     while @@fetch_status=0
     begin
         print convert(varchar,@id) + ',' + convert(varchar,@loginname) + ',' + convert(varchar,@website)
         fetch next from rs
         into @id,@loginname,@website
     end
     close rs

     deallocate rs
GO
----------------------
上面的declare rs cursor for    后面的查询语句放在declare rs cursor for 前面就定义好了,然后在
declare rs cursor for  后再如:exec(@sql) 这样写。
改后:
Create PROCEDURE my_sql
AS
     declare @id int,@loginname varchar(20),@website varchar(100),@sql nvarchar(500)
set @sql='select top 50 id,loginname,website from union_user'
     declare rs cursor for 
exec(@sql)
    
     open rs
     fetch next from rs
     into @id,@loginname,@website
     while @@fetch_status=0
     begin
         print convert(varchar,@id) + ',' + convert(varchar,@loginname) + ',' + convert(varchar,@website)
         fetch next from rs
         into @id,@loginname,@website
     end
     close rs

     deallocate rs
GO
为什么不行。因为我查询还在多个判断。。所以需要单独处理。。
该怎么改????????????
学知者的主页 学知者 | 初学一级 | 园豆:105
提问于:2010-05-12 14:35
< >
分享
所有回答(1)
0

把游标这部分一起放到@sql里面去。

清海扬波 | 园豆:825 (小虾三级) | 2010-05-12 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册