当我利用完一个游标之后能不能重新给这个游标赋上新的值?
比如:
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 datetime
DECLARE 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