Transact SQL——游标和自定义函数

Transact SQL——游标和自定义函数

ID:44812960

大小:113.50 KB

页数:23页

时间:2019-10-29

Transact SQL——游标和自定义函数_第1页
Transact SQL——游标和自定义函数_第2页
Transact SQL——游标和自定义函数_第3页
Transact SQL——游标和自定义函数_第4页
Transact SQL——游标和自定义函数_第5页
资源描述:

《Transact SQL——游标和自定义函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、TransactSQL——游标和自定义函数1.游标的优点和种类在数据库开发过程中,要检索的数据只是一条记录时,程序员所编写的事务语句代码往往使用SELECT、INSERT语句。实际上,常常会遇到从某一结果集中逐一地读取一条记录的情况,这时候就要用到游标。1).游标和游标的优点在数据库中游标是一个十分重要的概念。游标可以提供一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T-SQL选择语句相关联。因为游标由结果集和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该

2、结果集的游标。游标和FoxBase/Foxpro中的数据库/表中的记录指针完成的工作是相同的,而数据库/表舅相当于SQLServer中的查询,可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。关系数据库管理系统实质是面向集合的,在SQLServer中并没有一种描述表中单一记录的表达形式(使用where子句来限制只有一条记录被选中)。因此,必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供了对基于游标

3、位置而对表中数据进行删除或更新的能力。2).游标种类SQLServer支持3种类型的游标:Transact-SQL游标、API服务器游标和客户游标。*API游标API游标支持在OLEDB,ODBC以及DB_library中使用游标函数,每一次客户端应用程序调用API游标函数,SQLServer的OLEDB提供者、ODBC驱动器或DB_library的动态链接库(DLL)都会将这些客户请求传送给服务器以对API游标进行处理。API游标主要用在服务器上。*Transact-SQL游标Transact-SQL游标通过使用DECLARECURSOR等T-SQL语句定义、操作的,主要用作T-

4、SQL脚本、存储过程和触发器中。T-SQL游标主要用在服务器上,处理由客户端发送给服务器的Transact-SQL语句或是批处理、存储过程、触发器中的数据处理请求,Transact-SQL游标不支持提取数据块或多行数据。*客户游标客户游标主要是当在客户机上缓存结果集时才使用,在客户游标中,有一个Transact-SQL的结果集被用来在客户机上缓存整个结果集。客户游标仅支持静态游标而非动态游标,由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用在服务器游标的辅助。因为在一般情况下,服务器游标支持决大多数的游标操作。由于API游标和Transact

5、-SQL游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。2.游标的基本操作1).声明游标每一个游标有4个组成部分,这4个关键部分必须符合下面的顺序;(1)声明游标(2)打开游标(3)从一个游标中查找信息。(4)关闭游标通常使用DECLARE来声明一个游标,声明一个游标主要包括以下主要内容:·游标名称·数据来源(表和列)·选取条件·属性(仅读或可修改)其语法格式如下:DECLAREcursor_name[INSENSITIVE][SCROLL]CURSORFORselect_statement[FOR{READONLY

6、UPDATE[OFcol

7、umn_name[,...n]]}]SQL92游标声明语句参数---------------------------------------------------------------------------------------------------参数

8、具体含义---------------------------------------------------------------------------------------------------Cursor_name指游标的名字INSENSITIVE表明SQLServer会将游标定义所选取出来的数据记录存放在

9、一临时表内,对该游标的读取操作皆由临时表来应答。SCROLL表明所有的提取操作(如FIRST、LAST、PRIOR、NEXT等)都可用。如果不使用该保留字,那么只能进行NEXT提取操作。Select_statement是定义结果集的SELECT语句。应该注意的是在游标中不能使用COMPUTE、COMPUTEBY、FORBROWSE、INTO语句READONLY表明不允许游标内的数据被更新,尽管在默认状态下游标是允许更新的。而且在UPDATE或DELETE语句的WHER

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。