读书人

当小弟我利用完一个游标之后能不能重新

发布时间: 2012-08-16 12:02:15 作者: rapoo

当我利用完一个游标之后能不能重新给这个游标赋上新的值?
比如:
declare usercursor cursor for select ID from user_table
open usercursor
....使用过程
然后我又需要重新使用这个游标,可以吗?就是要求usercursor的数据就像刚刚创建时的一样也是select ID from user_table
我知道可以重新创建另一个游标declare usercursor2 cursor for select ID from user_table
open usercursor2,选择相同的数据,但我想重新利用usercursor,怎么办?

[解决办法]
主想做什呢?游用同一游。
[解决办法]
游标可以嵌套,不能递归。
[解决办法]
不可以,需要重新建立
[解决办法]
我记得游标可以倒着遍历
我猜可以,先倒着遍历让游标指到初始位置,再开始重新使用
不过这样感觉非常麻烦,还是新建比较好
[解决办法]
使用scroll选项就好.以下在ss2008测试通过:

SQL code
DECLARE @dt datetimeDECLARE db_cursor CURSOR SCROLL FOR  SELECT SMT_Data FROM MASTER.dbo.tb   OPEN db_cursor   FETCH NEXT FROM db_cursor INTO @dt   WHILE @@FETCH_STATUS = 0   BEGIN          print @dt        FETCH NEXT FROM db_cursor INTO @dt   END   ---------------------------------------print 'use the same cursor again'FETCH FIRST FROM db_cursor INTO @dt   WHILE @@FETCH_STATUS = 0   BEGIN          print @dt        FETCH NEXT FROM db_cursor INTO @dt   END   CLOSE db_cursor   DEALLOCATE db_cursor 

读书人网 >SQL Server

热点推荐