游标 存储过程.doc

上传人:韩长文 文档编号:5096836 上传时间:2020-02-01 格式:DOC 页数:4 大小:31.74KB
返回 下载 相关 举报
游标 存储过程.doc_第1页
第1页 / 共4页
游标 存储过程.doc_第2页
第2页 / 共4页
游标 存储过程.doc_第3页
第3页 / 共4页
游标 存储过程.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《游标 存储过程.doc》由会员分享,可在线阅读,更多相关《游标 存储过程.doc(4页珍藏版)》请在三一文库上搜索。

1、游标 存储过程游标存储过程2011-02-28 18:21最终编辑樊储09.08。26 7、游标宿主语言一般只能在单记录方式下工作,即一次处理一个记录。而SQL语句的查询结果常常是一张表,它包含多个记录,为此需要用游标(CURSOR)作为桥梁做一些特殊处理。与游标有关的命令共有五条:DECLARE、CURSOR、OPEN、FETCH、CLOSE、DEALLOCATE。定义游标:DECLARE CURSOR,具体格式:DECLARE游标名INSENSITIVESCROLLCURSOR FOR SELECT-查询块FORREAD ONLY|UPDATEOF列名列名INSENSITIVE:说明用数据

2、的临时拷贝来定义游标,所有对游标的请求都反映在这个临时表上,此游标不准修改;SCROLL:说明可以用所有的方法来存储数据,允许修改和删除;FOR READ ONLY/FOR UPDATE说明游标是只读的还是可以修改的;该语句用SELECT-查询块定义一个游标文件,它的内容是SELECT-查询块的查询结果(多个记录组成的临时表)。打开游标:OPEN游标名该语句指执行SELECT-查询块中的查询,并使游标指针指向查询结果的第一条记录。从游标中读记录:FETCHNEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE nFROM游标名INTO:主变量1,:主变量NEXT:说

3、明如果是在OPEN后第一次执行FETCH命令,则返回结果集的第一行,否则使游标的指针指向结果集的下一行;NEXT是默认的选项,也是最常用的一种方法;PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE n:只有在定义游标时使用了SCROOL选项才可以使用;PRIOR是返回结果集当前行的前一行;FIRST返回结果集的第一行;LAST返回结果集的最后一行;ABSOLUTE n是返回结果集的第n行,如果n是负数,则返回倒数第n行;RELATIVE n是返回当前行后的第n行,如果n是负数,则返回从当前行倒数第n行。这里的语句是取出游标的当前记录并送入主变量,同时使游标指针旨向下一条

4、记录。关闭游标:CLOSE游标名释放游标:DEALLOCATE游标名该命令的功能是删除由DECLARE声明的游标。利用游标进行修改或删除只影响表的当前行。存储过程、触发器和数据完整性1、存储过程:传统的数据库中只存放数据,而现在的C/S结构数据库中还可以存放程序,因为这种程序以数据库对象的形式存储在数据库中,所以称为存储过程。存储过程是经过预编译的SQL语句的集合,速度较快。SQL SERVER本身提供了一些存储过程,用于管理SQL SERVER和显示有关数据库和用户的信息,称之为系统存储过程。创建存储过程:CREATE PROCedureprocedure_name;numberparame

5、ter data_type=default,.AS sql_statement其中参数:procedure_name:存储过程名;Number:对同名的存储过程指定一个序号;parameter:给出参数名;=default:默认的参数值;sql_statement:可以是单个或多个SQL语句。存储过程语句中不可以出现创建数据库对象的语句。执行存储过程的语句:EXECute存储过程名无论什么时候执行存储过程,总要返回一个结果码,用以指示存储过程的执行状态。如果存储过程执行成功,返回的结果码是0;如果存储过程执行失败,返回的结果码一般是一个负数,它和失败的类型有关。在创建存储过程时,也可以定义自己

6、的状态码和错误信息。存储过程的修改和删除:存储过程作为独立的数据库对象存储在数据库中,存储过程可以修改,不需要的存储过程也可以删除。修改:ALTER PROCedureprocedure_name;numberparameter data_type=default,.AS sql_statement修改的过程相当于先删除旧存储过程,再建立一个新存储过程。删除:DROP PROCedureprocedure_name删除存储过程的语句中不能指定序号,因为该语句会删除同名的所有存储过程。2、触发器触发器是一类特殊的存储过程,它在满足某个条件下会自动触发执行。这可以提高数据库服务器的性能,同时触发器

7、以可以用于实现复杂的数据完整性约束。触发器是定义在表或视图上的,当在表上发生某种操作时,会引发触发器执行。影响表中的数据的操作有三种,即更新、插入、删除,对应的触发器也就是三个。SQL SERVER上允许为每类操作定义多个触发器,当发生相应的操作时,依次触发相应的触发器。建立触发器:CREATE TRIGGER trigger_name ON table FORINSERT|UPDATE|DELETEASIF UPDATE(column)AND|OR|UPDATE(column).Sql_statement Table:说明了定义触发器的表或视图;FORINSERT|UPDATE|DELETE:说明了激活触发器的操作;IF UPDATE(column):对应于UPDATE类触发器,说明如果更新某列则做如何处理;Sql_statement:触发器所要执行的SQL语句,它可以是一组SQL语句,可以包含流程控制语句等。插入视图和删除视图:在定义了触发器的表上发生修改操作时,会自动派生出两个视图或临时表,一个是插入视图inserted,一个是删除视图deleted,它们和原表有同样的结构。当在表上发生插入操作时,新插入的行将出现在插入视图inserted,当在表上发生删除操作时,删除的行将出现在删除视图deleted,更新操作是先删除旧的表,再插入新的表。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1