欢迎来到天天文库
浏览记录
ID:51595355
大小:107.50 KB
页数:12页
时间:2020-03-25
《数据库系统应用与管理09.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据库系统管理与应用罗荣良第八章游标游标概述游标的类型游标基本操作作业DeclareCursor定义游标定义Transact-SQL服务器游标的特性,例如游标的滚动行为和用于生成游标对其进行操作的结果集的查询。DECLARECURSOR接受基于SQL-92标准的语法和使用一组Transact-SQL扩展的语法。SQL-92语法DECLAREcursor_name[INSENSITIVE][SCROLL]CURSORFORselect_statement[FOR{READONLY
2、UPDATE[OFc
3、olumn_name[,...n]]}]Transact-SQL扩展语法DECLAREcursor_nameCURSOR[LOCAL
4、GLOBAL][FORWARD_ONLY
5、SCROLL][STATIC
6、KEYSET
7、DYNAMIC
8、FAST_FORWARD][READ_ONLY
9、SCROLL_LOCKS
10、OPTIMISTIC][TYPE_WARNING]FORselect_statement[FORUPDATE[OFcolumn_name[,...n]]]游标使用步骤1、Declare
11、Cursor语句创建基于Select的游标使用Open语句使用Fetch语句取值对取得的信息操作重复前面两个步骤关闭游标重置(Deallocate)游标CURSOR游标的使用DECLARECURSOR定义Transact-SQL服务器游标的特性,例如游标的滚动行为和用于生成游标对其进行操作的结果集的查询。OPEN语句填充结果集,FETCH从结果集返回行。CLOSE语句释放与游标关联的当前结果集。DEALLOCATE语句释放游标所使用的资源。DECLARECURSOR语句的第一种格式使用SQL-92语法
12、声明游标行为。DECLARECURSOR的第二种格式使用Transact-SQL扩展,使您得以使用在ODBC、ADO和DB-Library的数据库API游标函数中的相同游标类型定义游标。不能混淆这两种格式。如果在CURSOR关键字的前面指定SCROLL或INSENSITIVE关键字,则不能在CURSOR和FORselect_statement关键字之间使用任何关键字。如果在CURSOR和FORselect_statement关键字之间指定任何关键字,则不能在CURSOR关键字的前面指定SCROLL或I
13、NSENSITIVE。使用游标使用简单游标和语法打开该游标时所生成的结果集包括pubs数据库的authors表中的所有行和列。可以更新该游标,对该游标所做的所有更新和删除均在提取中表现出来。因为没指定SCROLL选项,FETCHNEXT是唯一可用的提取选项。DECLAREauthors_cursorCURSORFORSELECT*FROMauthorsOPENauthors_cursorFETCHNEXTFROMauthors_cursor简单的例子usenorthwinddeclare@Catego
14、ryIdint,@CategoryNamevarchar(50)declaremyCursorcursorforselectCategoryId,CategoryNamefromCategoriesopenmyCursorfetchnextfrommyCursorinto@CategoryId,@CategoryNamewhile@@fetch_status=0beginprint'CategoryId='+cast(@CategoryIdasvarchar(4))print'CategoryName
15、='+@CategoryNameprintreplicate('-',30)fetchnextfrommyCursorinto@CategoryId,@CategoryNameendclosemyCursordeallocatemyCursor简单的例子--声明名称为sales_cursor的CURSOR,并且指定SCROLL--以便可以使用FETCH所包含的各项关键词DECLAREsales_cursorSCROLLCURSORFORSELECTstor_id,ord_num,ord_date,qt
16、yFROMsalesOPENsales_cursorFETCHLASTFROMsales_cursorFETCHPRIORFROMsales_cursor--提取二笔记录FETCHABSOLUTE2FROMsales_cursor--提取目前记录的后三笔记录FETCHRELATIVE3FROMsales_cursor--提取目前记录的前二笔记录FETCHRELATIVE-2FROMsales_cursor--关闭sales_cursor之CURSORCL
此文档下载收益归作者所有