急!!!!sqlserver2005中游标问题

xlfd2005 2010-07-13 02:53:32
在sqlserver2005中有没有类似于oracle中的SYS_REFCURSOR的游标使用,请大侠帮忙给个示例.多谢!!!!

也就是在存储过程中定义一个输出参数形的游标
...全文
69 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlfd2005 2010-07-14
  • 打赏
  • 举报
回复
请帮忙逐行给解释一下了
xlfd2005 2010-07-14
  • 打赏
  • 举报
回复
谢了,但是不懂下面这段是什么意思

USE pubs
GO
DECLARE @MyCursor CURSOR
EXEC titles_cursor @titles_cursor = @MyCursor OUTPUT
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH NEXT FROM @MyCursor
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
GO
claro 2010-07-13
  • 打赏
  • 举报
回复
不懂

帮顶
永生天地 2010-07-13
  • 打赏
  • 举报
回复
E. 使用 OUTPUT 游标参数
OUTPUT 游标参数用来将存储过程的局部游标传递回调用批处理、存储过程或触发器。

首先,创建以下过程,在 titles 表上声明并打开一个游标:

USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'titles_cursor' and type = 'P')
DROP PROCEDURE titles_cursor
GO
CREATE PROCEDURE titles_cursor @titles_cursor CURSOR VARYING OUTPUT
AS
SET @titles_cursor = CURSOR
FORWARD_ONLY STATIC FOR
SELECT *
FROM titles

OPEN @titles_cursor
GO

接下来,执行一个批处理,声明一个局部游标变量,执行上述过程以将游标赋值给局部变量,然后从该游标提取行。

USE pubs
GO
DECLARE @MyCursor CURSOR
EXEC titles_cursor @titles_cursor = @MyCursor OUTPUT
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH NEXT FROM @MyCursor
END
CLOSE @MyCursor
DEALLOCATE @MyCursor
GO

永生天地 2010-07-13
  • 打赏
  • 举报
回复
可以有

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧