如题:
rollback;
CLOSE cur;or CLOSE cur;
rollback;

解决方案 »

  1.   

    看了个帖子说是:提交事务时,会将游标关闭,不知道是否是这回事?
    SET   CURSOR_CLOSE_ON_COMMIT   
      控制在提交事务时是否关闭游标。   
        
      语法   
      SET   CURSOR_CLOSE_ON_COMMIT   {   ON   |   OFF   }   
        
      注释   
      当   SET   CURSOR_CLOSE_ON_COMMIT   为   ON   时,该设置遵从   SQL-92   标准,在提交或回滚时关闭任何打开的游标。当   SET   CURSOR_CLOSE_ON_COMMIT   为   OFF   时,提交事务时不关闭游标。   
        
      当   SET   CURSOR_CLOSE_ON_COMMIT   为   OFF   时,ROLLBACK   语句将只关闭打开的未完全填充的异步游标。如果回滚修改,在进行修改后打开的   STATIC   或   INSENSITIVE   游标将不再反映数据的状态。   
        
      当   SET   CURSOR_CLOSE_ON_COMMIT   为   ON   时,ROLLBACK   语句关闭所有打开的游标。当   SET   CURSOR_CLOSE_ON_COMMIT   为   OFF   时,ROLLBACK   语句将关闭所有打开的游标,那些被定义为   INSENSITIVE   或   STATIC   的游标除外;但未完全填充的异步   STATIC   游标将关闭。如果回滚修改,在进行修改后打开的   STATIC   或   INSENSITIVE   游标将不再反映数据的状态。   
        
      SET   CURSOR_CLOSE_ON_COMMIT   控制与   sp_dboption   的   cursor   close   on   commit   数据库选项相同的行为。如果   CURSOR_CLOSE_ON_COMMIT   设置为   ON   或   OFF,则在连接上使用该设置。如果未指定   SET   CURSOR_CLOSE_ON_COMMIT,则应用   sp_dboption   的   cursor   close   on   commit   设置。   
        
      SQL   Server   ODBC   驱动程序和用于   SQL   Server   的   Microsoft   OLE   DB   提供程序均在连接时将   CURSOR_CLOSE_ON_COMMIT   设置为   OFF。DB-Library   不自动设置   CURSOR_CLOSE_ON_COMMIT   值。   
        
      当   SET   ANSI_DEFAULTS   为   ON   时,将启用   SET   CURSOR_CLOSE_ON_COMMIT。   
        
      SET   CURSOR_CLOSE_ON_COMMIT   的设置是在执行或运行时设置,而不是在分析时设置。