sqlserver数据库原理及应用第八章-存储过程和触发器ppt课件.ppt
《sqlserver数据库原理及应用第八章-存储过程和触发器ppt课件.ppt》由会员分享,可在线阅读,更多相关《sqlserver数据库原理及应用第八章-存储过程和触发器ppt课件.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去第第8章:章:存储过程和触发器8.18.1存储过程的概念存储过程的概念 存储过程是存储过程是SQLSQL语句和可选控制流语句和可选控制流语句的预编译集合,它以一个名字存语句的预编译集合,它以一个名字存储并作为一个单元处理。储并作为一个单元处理。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去8.28.2存储过程的分类存储过程的分类 在在SQL ServerSQL Server中存储过程分为两类,即中存储过程分为两类,即系统系统提
2、供的提供的存储过程存储过程和和用户自定义的存储过用户自定义的存储过程程。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去1)1)系统存储过程:系统存储过程:由系统自动创建,主要存储由系统自动创建,主要存储在在master数据库中,一般以数据库中,一般以sp_为前缀。系统存储为前缀。系统存储过程完成的功能主要是从系统表中获取信息。可过程完成的功能主要是从系统表中获取信息。可以在其它数据库中调用系统存储过程。当创建一以在其它数据库中调用系统存储过程。当创建一个新的数据库时,一些系统存储过程会在新数据个新的数据
3、库时,一些系统存储过程会在新数据库中被自动创建。库中被自动创建。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去2)2)用户自定义存储过程:用户自定义存储过程:由用户创建并能完成由用户创建并能完成某一特定功能的存储过程。某一特定功能的存储过程。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去CREATE PROC P1ASSelect sname,cname,degreefrom student,score,cour
4、seWhere student.sno=score.sno and o=o例如:例如:第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去3.3.使用存储过程的优点使用存储过程的优点1)1)实现模块化编程实现模块化编程2)2)使用存储过程可以加快程序的运行速度使用存储过程可以加快程序的运行速度一个存储过程可以被多个用户共享和重用。一个存储过程可以被多个用户共享和重用。存储过程在创建时即在服务器上进行编译,存储过程在创建时即在服务器上进行编译,所以执行起来比单个所以执行起来比单个sqlsql语句快。语句快。第第
5、8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去3)3)使用存储过程可以减少网络流量使用存储过程可以减少网络流量存储过程存储在数据库内,由应用程序通过存储过程存储在数据库内,由应用程序通过一个调用语句就可以执行它,不需要将大量一个调用语句就可以执行它,不需要将大量T-SQLT-SQL语句传送到服务器端。语句传送到服务器端。4)4)使用存储过程可以提高数据库的安全性使用存储过程可以提高数据库的安全性用户可以调用存储过程,实现对表中数据的用户可以调用存储过程,实现对表中数据的有限操作,但可以不赋予其直接修改数据表
6、有限操作,但可以不赋予其直接修改数据表的权限,这样就提高了表中数据的安全性。的权限,这样就提高了表中数据的安全性。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去4.4.存储过程创建存储过程创建1)1)使用企业管理器创建存储过程使用企业管理器创建存储过程2)2)使用使用T-SQLT-SQL创建存储过程创建存储过程第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去3)创建存储过程应注意的事项:创建存储过程应注意的事项:存
7、储过程是数据库对象,其名称必须遵守标识符规则。存储过程是数据库对象,其名称必须遵守标识符规则。不能将不能将CREATE PROCEDURECREATE PROCEDURE语句与其他语句与其他SQLSQL语句组合语句组合到单个批处理中。到单个批处理中。只能在当前数据库中创建存储过程。创建存储过程的只能在当前数据库中创建存储过程。创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授权限默认属于数据库所有者,该所有者可将此权限授予其他用户。予其他用户。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去5.
8、5.执行存储过程执行存储过程1)1)可以使用可以使用EXECUTEEXECUTE命令执行存储过程命令执行存储过程USE USE schoolEXEC p1EXEC p12)2)或直接写存储过程的名称或直接写存储过程的名称(如果存储过程是批处理的如果存储过程是批处理的第一条语句第一条语句):USE USE schoolGO GO-批处理以批处理以GOGO结束结束P1P1GOGO第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去6.6.修改存储过程修改存储过程1)1)使用企业管理器修改存储过程使用企业管理器修改
9、存储过程(1)(1)重命名重命名(2)(2)修改定义修改定义第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去2)2)使用使用T-SQLT-SQL语句修改存储过程语句修改存储过程(1)重命名重命名 sp_rename 原名称原名称,新名称新名称,object(2)修改定义修改定义ALTER PROCEDURE authorAS第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去7.7.删除存储过程删除存储过程1)1)使用企
10、业管理器修改存储过程使用企业管理器修改存储过程2)2)使用使用T-SQLT-SQL语句修改存储过程语句修改存储过程DROP PROCPROCEDUTE sproc_name第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去8.8.存储过程参数化存储过程参数化(重点、难点重点、难点)存储过程为我们提供了执行某种过程的能力,但是,存储过程为我们提供了执行某种过程的能力,但是,如果它不能接受让其进行操作的某种数据,那么在大如果它不能接受让其进行操作的某种数据,那么在大多数环境下来就没有用处。例如,建立一个删除表中
11、多数环境下来就没有用处。例如,建立一个删除表中数据的存储过程,要知道删除满足什么条件的记录。数据的存储过程,要知道删除满足什么条件的记录。同样,有时候我们也想让存储过程输出一些信息,例同样,有时候我们也想让存储过程输出一些信息,例如,我们建立一个更新表中数据的存储过程,一般情如,我们建立一个更新表中数据的存储过程,一般情况需要知道到底更新了多少条记录,等等。要想实现况需要知道到底更新了多少条记录,等等。要想实现上面的功能,就需要建立带有参数的存储过程。上面的功能,就需要建立带有参数的存储过程。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的
12、衣服或裹上湿毛毯、湿被褥勇敢地冲出去1)1)创建带有输入参数的存储过程创建带有输入参数的存储过程例题1:创建一个向表创建一个向表studentstudent中输中输入数据的存储过程。入数据的存储过程。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Use schoolGOCREATE PROC spinsertsno char(5),sname char(8),ssex char(2),sbirthday datetime,class char(5)AS INSERT INTO student(sno,s
13、name,ssex,sbirthday,class)VALUES(sno,sname,ssex,sbirthday,class)火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去执行存储过程执行存储过程:exec spinsert 111,张三张三,男男,1980-1-1,95031 上面例题创建的存储过程上面例题创建的存储过程spinsert一共需要一共需要5个参数,并且个参数,并且因为没有给这些参数提供默认值,所以为了成功运行该存储因为没有给这些参数提供默认值,所以为了成功运行该存储过程,必须提供这些参数值。过程,必须提供这些参数值
14、。如果执行如下语句:如果执行如下语句:exec spinsert 112,李四李四,男男,1985-1-2 其中少了一个参数,尽管在基本表中该字段允许为空,其中少了一个参数,尽管在基本表中该字段允许为空,但是此但是此proc也不能被成功执行。也不能被成功执行。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去例题2:2)2)创建带有输入参数的存储过程,同时给参创建带有输入参数的存储过程,同时给参数提供默认值。数提供默认值。第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机
15、立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Use schoolGOCREATE PROC spinsertsno char(5),sname char(8),ssex char(2),sbirthday datetime,class char(5)=95031-(或者或者class char(5)=null)AS INSERT INTO student(sno,sname,ssex,sbirthday,class)VALUES(sno,sname,ssex,sbirthday,class)火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥
16、勇敢地冲出去exec spinsert 112,李四李四,男男,1985-1-2执行存储过程执行存储过程:此时,该此时,该procproc执行成功执行成功!3)3)创建带有输出参数的存储过程创建带有输出参数的存储过程第第8章:章:存储过程和触发器火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Use schoolGOCREATE PROC averagest_no int,st_name char(8)output,st_avg float outputASSelect st_name=student.sname,st_avg=avg
17、(score.degree)From student,score where student.sno=score.snoGroup by student.sno,student.snameHaving student.sno=st_no火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Declare st_name char(8)Declare st_avg floatExec average 108,st_name output,st_avg outputSelect 姓名姓名=st_name,平均分平均分=st_avg Go 执行存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlserver 数据库 原理 应用 第八 存储 过程 触发器 ppt 课件
限制150内