第10章存储过程与触发器1

第10章存储过程与触发器1

ID:44943742

大小:735.50 KB

页数:29页

时间:2019-11-05

第10章存储过程与触发器1_第1页
第10章存储过程与触发器1_第2页
第10章存储过程与触发器1_第3页
第10章存储过程与触发器1_第4页
第10章存储过程与触发器1_第5页
资源描述:

《第10章存储过程与触发器1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQLServer2005数据库应用技术(第二版)第10章存储过程与触发器(1)复习视图简介创建和管理视图创建视图(视图加密、架构绑定的目的)如何获得视图的有关信息修改与删除视图使用视图修改数据使用视图优化性能索引视图分区视图本次课的学习内容理解存储过程,了解存储过程的用途创建存储过程的语法与示例(了解输入与输出参数的使用)存储过程的更改与删除执行存储过程的方式10-1存储过程导入:为了查询XS数据库中信息系的学生所修总学分信息,可以使用下列查询:USEXSSELECT学号,姓名,系名,总学分FRO

2、MXSDAWHERE系名=’信息’ORDERBY总学分DESC问题:如果网络上有5000个用户执行同一查询,结果会怎样?解决方法:将代码以一定的形式存放在服务器中,而不是存储在客户机上。10-1-1存储过程基础存储过程就是在SQLServer数据库中存放的查询,是存储在服务器中的一组预编译过的T-SQL语句,而不是在客户机上的前端代码中存放的查询。1.存储过程的优点存储过程除减少网络通信流之外,还有如下优点:(1)存储过程在服务器端运行,执行速度快。(2)存储过程是预编译过的,当第一次调用以后,就驻

3、留在内存中,以后调用时不必再进行编译,因此,它的运行速度比独立运行同样的程序要快。10-1存储过程优点:(3)简化数据库管理。例如,如果需要修改现有查询,而查询存放在用户机器上,则要在所有的用户机器上进行修改。而如果在服务器中集中存放查询并作为存储过程,则只需要在服务器上改变一次。(4)存储过程可以接受参数。允许零个或多个输入参数,也允许零个或多个输出参数。(5)可作为安全机制使用。即使无对应权限的用户,也可授予权限执行存储过程。注意:并不是每一个发往服务器的查询都要使用存储过程,只有用户经常运行这

4、个查询,才应考虑将该查询生成为存储过程。10-1存储过程2.存储过程的分类:按编写的语言来分:T-SQL存储过程与CLR(公共语言运行)存储过程。T-SQL存储过程又可分为:用户定义存储过程系统存储过程。10-1存储过程10-1-2创建存储过程定义一个存储过程时,首先要确定以下几点:(1)存储过程的名字。(2)该存储过程所要完成的功能,这是一个存储过程的主体。(3)是否需要输入参数,是否需要输出参数来输出结果。10-1存储过程10-1-2创建存储过程创建存储过程的方法有:1.使用模板创建存储过程:S

5、SMS/VIEW/模板资源管理器/存储器/创建存储过程2.用SSMS管理平台创建对象资源管理器/数据库/可编程性/存储过程/新建存储过程10-1存储过程10-1-2创建存储过程3.用T-SQL语句创建存储过程语法格式:CREATEPROC[EDURE][Schema_name.]procedure_name[@parameterdata_type[=default][OUTPUT]][,…][WITH]ASsql_statement注:WITH

6、_option>各个选项请详见P20110-1存储过程说明:(1)用户自定义存储过程只能在当前数据库中创建。(2)=default用于指定存储过程输入参数的默认值。默认值必须是常量或NULL,可以包含通配符%、_、[]和[^]。如果在定义时带了“=default”参数,则执行存储过程时根据情况可不提供实参。(3)在定义用户存储过程时,不能使用如下对象创建语句CREATEVIEW、CREATEDEFAULT、CREATERULECREATEPROCEDURE、CREATETRIGGER(4)CREAT

7、EPROCEDURE必须是批处理中的第一条语句。存储过程的定义也不能跨越批处理。(5)用相应架构名称限定存储过程所引用的对象名称,从而确保从存储过程中访问来自不同架构的表、视图或其它对象。10-1存储过程创建存储过程示例1、创建简单的存储过程例:USEXSGOIFOBJECT_ID('dbo.Getxsda','P')ISNOTNULLDROPPROCEDUREdbo.GetxsdaGOCREATEPROCEDUREdbo.GetxsdaASSELECT*FROMXSDAGO--DECLARE@re

8、turn_valueint--EXEC@return_value=[dbo].[GetXSDA]--SELECT'ReturnValue'=@return_value创建存储过程示例1、创建简单的存储过程又例:创建一个存储过程jsjzf_p,用于查询信息系学生总学分的排名情况(从高到低)。USEXSGOifexists(select*fromsys.objectswherename='jsjzf_p'andtype='P')DROPPROCjsjzf_pGOCREAT

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

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

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