11-2声明游标 通常我们使用 DECLARE来声明一个游标,主要内容为游标名字、数据来源 表和列、选取条件与属性。游标的声明有两种格式:SQL-92标准定义和 Transact SQL扩展定义(但仍支持SQL-92标准定义),前者只能说明游标 的属性,而不能定义游标的类型。 1.8QL-92标准定义 SQL-92标准声明游标的语法格式如下: DECLARE游标名[ INSENSITIVE][ SCROLLI CURSOR FOR select语句 [FOR{ READ ONLY| UPDATE[OF列名1[,n] 语法格式中参数说明如表11-1。 例[11-1】建立一游标,用于访问pubs数据库中 authors表。 use pubs DECLARE authors cursor CURSOR 声明游标 FOR SELECT FROM authors OPEN authors cursor 一从游标中提取一记录行,由于为指定 SCROLL选项, 那么 FETCH NEXT是唯一的提取选项
通常我们使用DECLARE 来声明一个游标,主要内容为游标名字、数据来源 表和列、选取条件与属性。游标的声明有两种格式:SQL-92标准定义和 Transact_SQL扩展定义(但仍支持SQL-92标准定义),前者只能说明游标 的属性,而不能定义游标的类型。 1.SQL-92标准定义 SQL-92标准声明游标的语法格式如下: DECLARE 游标名 [INSENSITIVE] [SCROLL] CURSOR FOR select_语句 [FOR {READ ONLY | UPDATE [OF 列名1[,…n]]}] 语法格式中参数说明如表11-1。 例[11-1】建立一游标,用于访问pubs数据库中authors表。 use pubs DECLARE authors_cursor CURSOR --声明游标 FOR SELECT * FROM authors OPEN authors_cursor --从游标中提取一记录行,由于为指定SCROLL选项, 那么FETCH NEXT是唯一的提取选项。 11-2 声明游标
FETCH NEXT FROM authors cursor Close authors cursor 关闭游标 运行结果如 238-95-7766 Carson Cheryl 415 548-7723 589 Darwin Ln. Berkeley CA 94705 1 表11-1SQL-92标准语法参数说明 例[11-2】建立一个只读游标。 declare cur authors cursor for select au Iname, au fname, phone, address, city, state from authors for read only 2. Transact SQL扩展定义 Transact SQL扩展定义游标语法格式为 DECLARE游标名 CURSOR [LOCAL GLOBAL [FORWARD ONLY SCROLL] [STATIC KEYSET DYNAMIC FAST FORWARD TREAD ONLY SCROLL LOCKS OPTIMISTIC ITYPE WARNING FOR Select语句 LFOR UPDATE [ OF column name L, 语法格式中参数简要说明如表11-2
FETCH NEXT FROM authors_cursor Close authors_cursor --关闭游标 运行结果如下: -------------------------------------------------------------------------------------------------------- --------- 238-95-7766 Carson Cheryl 415 548-7723 589 Darwin Ln. Berkeley CA 94705 1 表11-1 SQL-92标准语法参数说明 例[11-2】建立一个只读游标。 declare cur_authors cursor for select au_lname, au_fname, phone, address, city, state from authors for read only Transact_SQL扩展定义游标语法格式为: DECLARE游标名CURSOR [LOCAL | GLOBAL] [FORWARD_ONLY | SCROLL] [STATIC | KEYSET | DYNAMIC | FAST_FORWARD] [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC] [TYPE_WARNING] FOR select_语句 [FOR UPDATE [OF column_name [,...n]]] 语法格式中参数简要说明如表11-2。 2.Transact_SQL扩展定义