SQL数据库中基于游标的数据更新.pdf

SQL数据库中基于游标的数据更新.pdf

ID:52474463

大小:853.66 KB

页数:2页

时间:2020-03-28

SQL数据库中基于游标的数据更新.pdf_第1页
SQL数据库中基于游标的数据更新.pdf_第2页
资源描述:

《SQL数据库中基于游标的数据更新.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、应用技术与研究学术探讨2015年第9期SQL数据库中基于游标的数据更新姚曦(福建卫生职业技术学院公共基础部,福建福州350101)[摘要]本文介绍了SQL中游标的概念,游标的操作步骤。重点解析了如何应用游标进行多表的数据更新,并通过工资表更新的实例进一步说明游标的用法。[关键词]游标;更新;关联;多表中图分类号:TP311.13文献标识码:A文章编号:1008-6609(2015)09-0065-02表内,对游标的读取操作由临时表来应答。游标不会随着基1游标的概念表内容的改变而改变,同时也无法通过游标来更新基本表。在数据库的使用中,常常会遇到这种

2、情况:用查询语句,SCROLL关键字:表明所有的提取操作(FIRST,LAST,得到一个结果集,但对这个结果的操作不是相同的,需要根PRIOR,NEXT,RELATIVE,ABSOLUTE)等都可用,如不使用据不同的条件,对不同的记录进行不同的处理。此时,就需该保留字,只能进行NEXT操作。要用到游标。READONLY关键字:只读游标。游标实际上是一种能从包括多条记录的结果集中每次UPDATE关键字:可修改的游标,或指定修改的列。提取一条记录的机制。游标总是与一条SQL查询语句相关3.2打开游标联,允许应用程序对SELECT语句返回的行结果集中每

3、一行声明游标后,如果要从游标中读取数据,必须打开游标。进行相同或不同的操作,而不是一次对整个结果集进行同一打开游标的语法为:种操作。这种特性使得对数据的操纵十分灵活。OPEN[GLOBAL]<游标名>│<游标变量>2游标的种类在游标成功打开后,全局变量@@CURSOR_ROWS将SQL支持三种类型的游标:Transact-SQL游标、API游标用来记录游标内数据行数。变量返回值代表的状态如表1所和客户游标。示。Transact-SQL游标:T-SQL游标是由DECLARECUR-表1@@CURSOR_ROWS变量的返回值SOR语句定义,主要用在脚

4、本、存储过程和触发器中,应用在服务器上。-m从基础表向游标读入数据的处理仍在进行,m表示当前在游标中的数据行数API游标:API游标使用在客户端与服务器端的连接程该游标是一个动态游标,由于动态游标反映基础表的所有序中(如OLEDB和ODBC等)。-1变化,因此符合游标定义的数据行经常变动,故无法确定客户游标:客户游标主要在当需要在客户机上缓存结果0无符合条件的记录或游标已被关闭集时使用。从基础表读入数据已经结束,n为游标中已有数据记录的行n3游标的使用步骤数据游标的操作可分为以下几个步骤:3.3读取游标中的数据3.1声明游标当游标成功打开以后,可

5、以使用FETCH语句从中读取声明游标的语法为:数据。DECLARE<游标名>[INSENSITIVE][SCROLL]CUR-FETCHSOR[[NEXT│PRIOR│FIRST│LASTFOR│ABSOLUTE{n│@nvar}[FOR{READONLY

6、UPDATE][OF<列名>[,…n]]}]│RELATIVE{n│@nvar}INSENSITIVE关键字:将取出的数据记录放在一个临时FROM]——————————————作者简介:姚曦,女,福建福州人,本科,讲师,研究方向:计算机应用技术。-65-学术探讨应用技术与研

7、究2015年第9期{{GLOBAL<游标名>}│<@游标变量>}forselectid,incomefromsalaryforupdateofincome[INTO@<变量名>[,…n]]opensa_cur1NEXT│PRIOR│FIRST│LAST:用于说明读取数据fetchfromsa_cur1into@id,@salary的位置。while@@fetch_status=0ABSOLUTE、RELATIVE:给出读取数据的位置与游标begin头或当前位置的关系。其中N必须为整型常量或变量。ifexists(select*fromaddinc

8、omewhereid=@id)其中全局变量@@FETCH_STATUS返回上次执行beginFETCH命令的状态。在每次用FETCH从游标中读取数据set@salary=(selectaddmoneyfromaddincome时,都应检查该变量,以确定上次FETCH操作是否成功,来whereid=@id)决定如何进行下一步处理。变量的返回值的状态如表2所updatesalarysetincome=income+@salarywhere示。currentofsa_cur1end表2@@FETCH_STATUS的返回值fetchnextfromsa_

9、cur1into@id,@salary0FETCH命令被成功执行endFETCH命令失败,或者指定的行超过了游标数据结closesa_c

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

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

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