这个参数" CURSOR_CLOSE_ON_COMMIT " 怎么查看它的值.

刘欣的博客 2009-08-14 03:30:16
自动关闭游标
我们已经了解到游标可应用在存储过程、触发器和Transact_SQL 脚本中。如果在声明游标与释放游标之间使用了事务结构,则在结束事务时游标会自动关闭。其具体的情况如下所示:
(1)、声明一个游标
(2)、打开游标
(3)、读取游标
(4)、BEGIN TRANSATION
(5)、数据处理
(6)、COMMIT TRANSATION
(7)、回到步骤3
在这样的应用环境中。当从游标中读取一条数据记录进行以BEGIN TRANSATION为开头,COMMIT TRANSATION 或ROLLBACK 为结束的事务处理时,在程序开始运行后,第一行数据能够被正确返回,经由步骤7, 程序回到步骤3, 读取游标的下一行,此时常会发现游标未打开的错误信息。其原因就在于当一个事务结束时,不管其是以COMMIT TRANSATION 还是以ROLLBACK TRANSATION 结束,MS SQL SERVER 都会自动关闭游标,所以当继续从游标中读取数据时就会造成错误。
解决这种错误的方法就是使用SET 命令将CURSOR_CLOSE_ON_COMMIT 这一参数设置为OFF 状态。其目的就是让游标在事务结束时仍继续保持打开状态,而不会被关闭。使用SET 命令的格式为:
SET CURSOR_CLOSE_ON_COMMIT OFF

------------------------------------------------------------------

上面的文章提到了"CURSOR_CLOSE_ON_COMMIT",我怎么在sql2000中看它现在是ON还是OFF呢?
...全文
212 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ot512csdn 的回复:]
查询分析器中执行结果:


服务器: 消息 16915,级别 16,状态 1,行 3
名为 'abc' 的游标已存在。
服务器: 消息 16905,级别 16,状态 1,行 6
游标已打开。
[/Quote]
要稍微改下的呀,你去联机丛书查那个sp_cursor_LIST
刘欣的博客 2009-08-14
  • 打赏
  • 举报
回复
查询分析器中执行结果:


服务器: 消息 16915,级别 16,状态 1,行 3
名为 'abc' 的游标已存在。
服务器: 消息 16905,级别 16,状态 1,行 6
游标已打开。
SQL77 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ot512csdn 的回复:]
看不懂^_^!
[/Quote]
你去你的查询分析器中执行就好了
刘欣的博客 2009-08-14
  • 打赏
  • 举报
回复
看不懂^_^!
SQL77 2009-08-14
  • 打赏
  • 举报
回复
USE Northwind
GO
-- Declare and open a keyset-driven cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Employees
WHERE LastName LIKE 'S%'
OPEN abc

-- Declare a cursor variable to hold the cursor output variable
-- from sp_cursor_list.
DECLARE @Report CURSOR

-- Execute sp_cursor_list into the cursor variable.
EXEC master.dbo.sp_cursor_list @cursor_return = @Report OUTPUT,
@cursor_scope = 2

例子
SQL77 2009-08-14
  • 打赏
  • 举报
回复
sp_cursor_list [ @cursor_return = ] cursor_variable_name OUTPUT
, [ @cursor_scope = ] cursor_scope

34,590

社区成员

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

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