您现在的位置: > 技术沙龙 > 数据库 > SQL Server > Transact-SQL 参考 > OPEN
  • 相关软件
    >OPEN 创建者:webmaster 更新时间:2006-02-16 15:51

    打开 Transact-SQL 服务器游标,然后通过执行在 DECLARE CURSOR 或 SET cursor_variable 语句中指定的 Transact-SQL 语句填充游标。



    语法


    OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }



    参数


    GLOBAL



    指定 cursor_name 指的是全局游标。



    cursor_name



    已声明的游标的名称。如果全局游标和局部游标都使用 cursor_name 作为其名称,那么如果指定了 GLOBAL,cursor_name 指的是全局游标,否则 cursor_name 指的是局部游标。



    cursor_variable_name



    游标变量的名称,该名称引用一个游标。



    注释


    如果使用 INSENSITIVE 或 STATIC 选项声明了游标,那么 OPEN 将创建一个临时表以保留结果集。如果结果集中任意行的大小超过 Microsoft® SQL Server™ 表的最大行大小,OPEN 将失败。如果使用 KEYSET 选项声明了游标,那么 OPEN 将创建一个临时表以保留键集。临时表存储在 tempdb 中。



    打开游标后,可以使用 @@CURSOR_ROWS 函数在最后一次打开的游标中接收合格行的数目。根据期望出现在结果集中的行数,SQL Server 可能会选择在一个单独的线程中异步地填充键集驱动游标。这就允许即使没有充分地填充键集,也可以立即进行提取。有关更多信息,请参见异步填充



    若要设置 SQL Server 异步生成键集时的阈值,请设置 cursor threshold 配置选项。有关更多信息,请参见 sp_configure



    示例


    下面的示例打开一个游标并且提取所有的行。



    DECLARE Employee_Cursor CURSOR FOR
    SELECT LastName, FirstName
    FROM Northwind.dbo.Employees
    WHERE LastName like 'B%'

    OPEN Employee_Cursor

    FETCH NEXT FROM Employee_Cursor
    WHILE @@FETCH_STATUS = 0
    BEGIN
      FETCH NEXT FROM Employee_Cursor
    END

    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor
    相关文章
    本页查看次数: