第06章SQLServer编程基础及存储过程_第1页
第06章SQLServer编程基础及存储过程_第2页
第06章SQLServer编程基础及存储过程_第3页
第06章SQLServer编程基础及存储过程_第4页
第06章SQLServer编程基础及存储过程_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt整理ppt 客户/服务器数据库与传统的数据库结构的一个很重要的区别是,在传统的数据库中只存放数据,所有的应用程序都在用户

2、端,都与用户实际运行的应用程序捆绑在一起;而在客户/服务器结构的数据库中,在数据库中还可以存放程序,即存储过程。整理ppt 存储过程是事先编好的、存储在数据库中的程序,这些程序用来完成对数据库的指定操作。整理ppt系统存储过程 SQL Server本身提供了一些存储过程,用于管理SQL Server和显示有关数据库和用户的信息,我们称之为系统存储过程。用户存储过程 用户也可以编写自己的存储过程,并把它存放在数据库中。这样安排的主要目的就是要充分发挥数据库服务器的功能,尽量减少网络上的堵塞。整理ppt客户端应用(不使用存储过程)客户端应用(使用存储过程).Start transaction.IN

3、SERT dataUPDATE dataDELETE dataEnd transaction.Start transaction.Call Stored procedureEnd transaction.DBMSServerDBMSServerProcedure:INSERT dataUPDATE dataDELETE data(a)(b) 不使用存储不使用存储过程时,所有过程时,所有的数据处理都的数据处理都在客户端完成;在客户端完成;而使用存储过而使用存储过程时,可以使程时,可以使数据处理在服数据处理在服务器端完成。务器端完成。整理pptCREATE PROCedure procedure_

4、name ; number parameter data_type = default , AS sql_statement s s procedure_name:给出存储过程名;:给出存储过程名;s s number:对同名的存储过程指定一个序号;:对同名的存储过程指定一个序号;s s parameter:给出参数名;:给出参数名;s s data_type:指出参数的数据类型;:指出参数的数据类型;s s = default:给出参数的默认值;:给出参数的默认值;s s sql_statement:存储过程所要执行的:存储过程所要执行的SQL语句,它可以是一语句,它可以是一组组SQL语句,

5、可以包含流程控制语句等。语句,可以包含流程控制语句等。整理pptCREATE PROCedure sp_getemp;1AS SELECT * FROM 职工职工整理pptCREATE PROCedure sp_getemp;2(salary int)AS SELECT * FROM 职工职工 WHERE 工资工资 salary整理ppt 存储过程一般用来完成数据查询和数据处理操作,存储过程一般用来完成数据查询和数据处理操作,所以在存储过程中不可以使用创建数据库对象的语句,所以在存储过程中不可以使用创建数据库对象的语句,即在存储过程中一般不能含有以下语句:即在存储过程中一般不能含有以下语句:C

6、REATE TABLECREATE VIEWCREATE DEFAULTCREATE RULECREATE TRIGGERCREATE PROCEDURE整理pptEXECute=|整理pptexecute sp_getemp;2 1240 整理ppt 无论什么时候执行存储过程,总要返回无论什么时候执行存储过程,总要返回一个结果码,用以指示存储过程的执行状态。一个结果码,用以指示存储过程的执行状态。如果存储过程执行成功,返回的结果码是如果存储过程执行成功,返回的结果码是0;如果存储过程执行失败,返回的结果码一般如果存储过程执行失败,返回的结果码一般是一个负数,它和失败的类型有关。我们在是一个负

7、数,它和失败的类型有关。我们在创建存储过程时,也可以定义自己的状态码创建存储过程时,也可以定义自己的状态码和错误信息。和错误信息。整理pptCREATE PROCedure sp_getemp;3(salary int =NULL)AS IF salary IS NULLBEGIN PRINT 必须提供一个数值作参数!必须提供一个数值作参数! RETURN 13ENDIF NOT EXISTS (SELECT * FROM 职工职工 WHERE 工资工资 salary)BEGIN PRINT 没有满足条件的记录!没有满足条件的记录! RETURN -103ENDSELECT * FROM 职工

8、职工 WHERE 工资工资 salaryRETURN 0例:带参数和返回状态值的存储过程。例:带参数和返回状态值的存储过程。整理ppt例:执行以上存储过程。例:执行以上存储过程。DECLARE status intEXECUTE status=sp_getemp;3 1200print status整理ppt整理ppt 存储过程是客户/服务器机制的一个重要组成部分,如果使用客户/服务器机制的数据库管理系统,但是不理解存储过程或没有充分利用存储过程,那将使客户/服务器机制的功能大打折扣,使系统的整体性能可能降低很多。整理ppt 触发器可以看作是一类特殊的存储过程,触发器可以看作是一类特殊的存储过

9、程,它在满足某个特定条件时自动触发执行。它在满足某个特定条件时自动触发执行。 触发器是为表上的更新、插入、删除操触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。或删除操作时触发器将执行。整理ppt 1. 触发器可以通过级联的方式对相关的表触发器可以通过级联的方式对相关的表进行修改。比如,对父表的修改,可以引起对进行修改。比如,对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的一致性子孙表的一系列修改,从而保证数据的一致性和完整性。和完整性。 2. 触发器可以禁止或撤消违反参照完整性触发器可以禁止或撤

10、消违反参照完整性的修改。的修改。 3. 触发器可以强制比用触发器可以强制比用CHECK约束定义约束定义更加复杂的限制。更加复杂的限制。整理ppt整理pptCREATE TRIGGER trigger_nameON tableFOR INSERT | UPDATE | DELETE AS IF UPDATE(column) AND | OR UPDATE(column)sql_statements s trigger_name:给出了触发器的名称;:给出了触发器的名称;s s table:说明了定义触发器的表或视图;:说明了定义触发器的表或视图;s s FOR INSERT | UPDATE |

11、 DELETE :说明了激活触发器的数据操作语句;:说明了激活触发器的数据操作语句;s s IF UPDATE(column):对应于:对应于UPDATE类触发器,说明如果更新某(些)列类触发器,说明如果更新某(些)列则做如何处理;则做如何处理;s s sql_statement:触发器所要执行的:触发器所要执行的SQL语句,它可以是一组语句,它可以是一组SQL语句,可以包语句,可以包含流程控制语句等。含流程控制语句等。整理pptCREATE TRIGGER wh_triggerON 仓库仓库FOR INSERT AS PRINT 插入了一个仓库元组插入了一个仓库元组整理ppt为触发器运行而自

12、动派生的两个视图:为触发器运行而自动派生的两个视图:inserted存放刚插入的新记录存放刚插入的新记录deleted存放刚删除的旧记录存放刚删除的旧记录整理ppt 删除类触发器就是当表上发生删除操作时删除类触发器就是当表上发生删除操作时所触发执行的程序。所触发执行的程序。整理pptCREATE TRIGGER w_del_triggerON 仓库仓库 FOR DELETEASUPDATE 职工职工SET 仓库号仓库号=NULLWHERE 仓库号仓库号 = (SELECT 仓库号仓库号 FROM deleted)整理ppt 插入类触发器就是当表上发生插入插入类触发器就是当表上发生插入操作时所触

13、发执行的程序。操作时所触发执行的程序。整理pptCREATE TRIGGER e_ins_triggerON 职工 FOR INSERTASIF (SELECT COUNT(*) FROM 仓库 w , inserted i WHERE w.仓库号 = i.仓库号) = 0BEGIN RAISERROR (非法仓库号!,1,1) ROLLBACK TRANSACTIONEND整理ppt 更新类触发器就是当表上发生更新操作时更新类触发器就是当表上发生更新操作时所触发执行的程序。所触发执行的程序。整理ppt整理pptCREATE TRIGGER e_upd_triggerON 职工职工 FOR UPDATEASDECLARE wh_no CHAR(4)IF UPDATE(仓库号仓库号) BEGIN IF (SELECT COUNT(*) FROM 仓库仓库 w , inserted i WHERE w.仓库号仓库号 = i.仓库号仓库号) = 0 BEGIN RAISERROR (非法仓库号!非法仓库号!, 16, 1) ROLLBACK TRANSACTION END ELSE BEGIN SELECT wh_no = 仓库号仓库号 FROM inserted IF wh_no = WH2 UPDATE 职工职工 SET 工资工资 = 工资工资*1.10 WHERE 职工号职

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论