• 您的位置我爱Aspx >> 数据库 >> 关闭释放游标
  • 关闭释放游标

  • 作者:aspxer  来源:internet  日期:2007-5-22 0:33:28  关键字:
  • 关闭释放游标

    13.5.1 关闭游标

    1、使用CLOSE 命令关闭游标

    在处理完游标中数据之后必须关闭游标来释放数据结果集和定位于数据记录上的锁。CLOSE 语句关闭游标,但不释放游标占用的数据结构。如果准备在随后的使用中再次打开游标,则应使用CLOSE 命令。其关闭游标的语法规则为:

    CLOSE { { [GLOBAL] cursor_name } | cursor_variable_name }

    2、自动关闭游标

    我们已经了解到游标可应用在存储过程、触发器和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我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:读取游标中的数据
    下一篇:定位修改删除游标
  • 相关文章