问一个关于游标的问题

windwing_blue 2005-11-15 04:22:00
CREATE PROCEDURE te

AS
declare
@sql nvarchar(4000),
@cur cursor
begin
set @sql = N'set @cur = cursor for select * from A'
execute sp_executesql @sql , N'@cur cursor out',@cur out
open @cur
close @cur
end
GO
在执行的时候到打开游标的地方就出错,请问各位,我这个的问题在哪里?谢谢
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rivery 2005-11-15
  • 打赏
  • 举报
回复
参见示例:
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

yinwun 2005-11-15
  • 打赏
  • 举报
回复
字段名一定要一致。
windwing_blue 2005-11-15
  • 打赏
  • 举报
回复
自己up

34,873

社区成员

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

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