第10章 存储过程new

第10章 存储过程new

ID:36617663

大小:154.00 KB

页数:49页

时间:2019-05-09

第10章  存储过程new_第1页
第10章  存储过程new_第2页
第10章  存储过程new_第3页
第10章  存储过程new_第4页
第10章  存储过程new_第5页
资源描述:

《第10章 存储过程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章存储过程及触发器10.1存储过程10.1.1存储过程的定义与特点1.存储过程的定义在sqlserver中,可以定义子程序存放在数据库中,这样的子程序称为存储过程,存储过程是数据库对象之一。2.存储过程的特点(1)允许模块化的程序设计(2)更快的执行速度(3)有效降低网络流量(4)确保数据库的安全10.1.2存储过程的类型1.系统存储过程:由系统提供的存储过程,可以作为命令执行各种操作,系统存储过程定义在系统数据库master中,前缀为sp_。2.本地存储过程:指在用户数据库中创建的存储过程,其

2、名称不能用sp_开头3.临时存储过程4.远程存储过程5.扩展存储过程:在sqlserver环境之外执行的动态链接库称为扩展存储过程,其前缀为sp_,xp_10.2用户存储过程的创建与执行用户存储过程只能定义在当前数据库中,可以使用sql命令或sqlserver的企业管理器创建。10.2.1通过sql命令创建和执行存储过程创建存储过程的语法:createproc[edure]procedure_name[{@parameterdata_type}[varying][=default][output]][

3、,…n]Asselectsql_statement通过EXEC命令可以执行一个已定义的存储过程语法格式:[EXEC[UTE]]{[@return_status=]{procedure_name}[[@parameter=]{value

4、@variable[output]

5、[default][,…n][withrecompile]}在CREATEPROCEDURE语句中,可以包括任意数量和类型的T-SQL语句,但是创建存储过程的内容有如下一些限制:(1)不能包含下列语句:Createview、creat

6、etrigger、createdefault、createprocedure、createrule(2)不能在同一存储过程中创建、删除、重建同一对象名。(3)不能引用尚未存在的对象(4)虽然可以引用临时库,但若临时库被清零,则会导致系统出错,因此在存储过程中要谨慎使用临时表。1定义不带参数的存储过程(教材8.2.1)1)定义例1:从XSCJ数据库中,返回学生学号、姓名、课程名、成绩。usexscjifexists(selectnamefromsysobjectswherename='student_g

7、rade'andtype='p')dropprocedurestudent_gradegocreateprocedurestudent_gradeasselectxs.xh,xs.xm,kc.kch,xs_kc.chjfromxs,xs_kc,kcwherexs.xh=xs_kc.xhandxs_kc.kch=kc.kchGo2)调用存储过程EXECstudent_gradeGO教材示例8.1UsestudentGoCreateprocedureteacher_proc1AsSelect*fromte

8、acher_infowheregender=‘男’Go执行teacher_proc1UsestudentGoExecuteteacher_proc1go2创建和执行带参数的存储过程(1)创建例2从xscj数据库的三个表中查询某人指定课程成绩。usexscjifexists(selectnamefromsysobjectswherename='student_info'andtype='p')dropprocedurestudent_infogocreateprocedurestudent_info@n

9、amechar(8),@cnamechar(16)asselectxs.xh,xm,kcm,chjfromxs,kc,xs_kcwherexs.xh=xs_kc.xhandkc.kch=xs_kc.kchandxs.xm=@nameandkc.kcm=@cnamego或:usexscjifexists(selectnamefromsysobjectswherename='student_info1'andtype='p')dropprocedurestudent_info1gocreateproced

10、urestudent_info1@namechar(8),@cnamechar(16)asselectxs.xh,xm,kcm,chjfromxsinnerjoinxs_kconxs.xh=xs_kc.xhinnerjoinkconxs_kc.kch=kc.kchwherexs.xm=@nameandkc.kcm=@cnamego再或:usexscjifexists(selectnamefromsysobjectswherename=’student_i

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

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

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