存储过程应用技术

存储过程应用技术

ID:43244954

大小:159.74 KB

页数:6页

时间:2019-09-28

存储过程应用技术_第1页
存储过程应用技术_第2页
存储过程应用技术_第3页
存储过程应用技术_第4页
存储过程应用技术_第5页
资源描述:

《存储过程应用技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、存储过程应用技术存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中经过笫一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程的优点:1、存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。2、通过存储过程可以使没有权限的用户在控制之

2、下间接地存取数据库,从而保证数据的安全。3、通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。4、在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。5、可以降低网络的通信量。6、使体现企业规则的运算程序放入数据库服务器中,以便集中控制。7、当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的

3、运算程序放入应用程序屮,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的运算放入存储过程屮,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。存储过程的功能虽然很强大,但并非所有数据业务操作都应采用存储过程。一般情况下,仅对单个数据表的操作不需要采用存储过程。存储过程主要应用于多表级联查询、需要按指定规则条件返回结果的查询、查询的同时需要对其他表进行写入操作的情况。案例一:考试系统关于题型提取的存储过程——Author:LSY一一Crea

4、tedate:2016-08-14—Description:获取Paper选择题——execpr_get_paper_select1,0,10106281ALTERPROCEDURE[dbo]•[pr_get_paper_select]@paperidINT,@select_typeINT,@useridNVARCHAR(IO)ASBEGIN--首先对客户端回传参数进行判断,代表单选题,•select_l•代表多选题DECLARE@type_nameNVARCHAR(20)IF@select_type=0SET@ty

5、pe_name=1select_01ELSESET吐ype_name=1selecDECLARE@ranINT,@select_numint一提取试卷的配置参数@ran代表随机标记,@seleet_num代表题目数量SELECT@ran=order_typez@select_num=ps.toptip_numFROMpaper_setASpsWHEREps.toptip_ID=@type_nameANDps,paper_ID=@paperid--创建临时壯optip_top表以便组装数据CREATEtable#top

6、tip_top(StNVARCHAR(IO),select_IDINT,item_orderNVARCHAR(IO),item_textNVARCHAR(3000)zview_orderNUMERIC(8,3))--将题目查询出来临时存放到表#toptipSELECT'x*st,paper・toptip_TD,CONVERT(NVARCHAR(10),paper・toptip_order)item_order,tv.toptipzpaper.toptip_orderview_orderINTO#toptipFROME

7、xam.dbo.paper_selectASpaperJOINExam.dbo.toptip_selectAStvONpaper.toptip_ID=tv.idWHEREtv.select_type=@select_typeANDpaper.paper_ID=@paperid-@ran=0代表需要随机配题目,否则取数据库内的固定顺序。IF@ran=0UPDATE#toptipSETview_order=CONVERT(NVARCHAR(10),(selectcast(ceiling(rand(checksum(new

8、id()))*200)asint)))elseDECLARE@strNVARCHAR(2000)SET@str=1SELECTTOP1+convert(varchar(10)z@select_num)+1*FROM#toptiporderbyview_order1--釆用动态sq丄将查询结果存入壯optip_topINSERTINTO#topt

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

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

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