实验7存储过程和触发器

实验7存储过程和触发器

ID:22284028

大小:58.68 KB

页数:5页

时间:2018-10-28

实验7存储过程和触发器_第1页
实验7存储过程和触发器_第2页
实验7存储过程和触发器_第3页
实验7存储过程和触发器_第4页
实验7存储过程和触发器_第5页
资源描述:

《实验7存储过程和触发器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验7存储过程和触发器一、目的和要求(1)了解触发器的定义方法,及其目的,主要是实现、Ik务规则的约束。(2)了解INSERTed逻辑表和deleted逻辑表的使用。(3)了解使用Transact-SQL语句定义存储过程的方法,或使用企、Ik管理器或者存储过程创建向导完成存储过程的定义方法。(4)了解存储过程的调用方法,及其与调用函数的区别。存储过程调用时,其实参不耑要加括号。二、背景知识(1)存储过程概述:存储过程是SQL语句和可选控制流程语句的预编译集合,它以一个名称存储并作为一个单元处理。存储过程存储在数据库内,

2、可由应用程序通过一个调用执行。存储过程可以接受参数,输出参数,返回单个或多个结來集,也可以返回一个值。存储过程具有以下优点:罄可以在一个存储过程中,执行一系列SQL语句。罄存储过程可以嵌套调用,以简化语句的描述罄存储过程在创建时即在服务器上进行编译,所以执行起来比吊个SQL语句快,并II能减少网络通信的负担。罄存储过程屮的参数可以具有默认值,默认值必须为常:W:或者NULL。(2)触发器概述:触发器是一种特殊类型的存储过程,常用作数裾完整性约束。一个系统有三类触发器,分别为:INSERT触发器、UPDATE触发器和DE

3、LETE触发器。通常INSERT^UPDATE触发器被用来检查插入或者修改后的数据是否满足要求。DELETE触发器一般用作级联删除或记录外键的删除操作。当对指定表执行INSERT、UPDATE、DELETE时,相应的触发器会自动执行。触发器可以包含复杂的T-SQL语句。一个表可以有多个触发器。在触发器执行的时候,会产生两个临时表:INSERTed表和deleted表。它们的错构和触发器所在的表的結构相同,SQLSERVER自动创建和管理这些表。在对触发器的表进行操作时,系统执行过程如下:•执行INSERT操作,插入到触

4、发器表巾的新行同时被插入到INSERTed表屮。•执行DELETE操作,从触发器表中删除的行同时被插入到deleted表中。•执行UPDATE操作,先从触发器表屮删除旧行,然后再插入新行。某屮,被删除的旧行,同时被插入到deleted表中;插入的新行,同时被插入到INSERTed表中。触发器可以使用这两个临时表测试数据修改的效果及设置触发器操作的条件。触发器具有以下优点:•触发器可通过数据库中的相关表实现级联更改。但是,通过在表之间建立参考完整性约束,可以更有效地执行这些更改。•触发器可以执行比CHECK约來更为复杂的

5、约束定义。触发器可以使用其他表中的数据,而CHECK约來不行。•一个表中的多个同类触发器,允许采用多个不同的对策,以响应冋一个修改语句。三、实验内容通过查询分析器,设置XSGL数据库为当前数据库,调试实验步骤中提供的相关语句,熟悉存储过程和触发器的定义及使用方法。!1!实验步骤1.创建一个按名字模糊查询学生基本信息的存储过程。CREATEPROCEDUREchaxun_student_name(@snamevarchar(20))AS(SELECTsnoAS学号,snameAS姓名,ageAS年龄,dnameAS学院名

6、称FROMstudent,deptWHEREstudent.dno=dept.dnoANDsnameLIKE@sname)说明:存储过程必须先定义,然后在客户端进行调用。在查询分析器中,执行方法为:EXEC存储过程名参数例如:本例调用存储过程查询名字中含有丽的学生信息方法为,在查询分析器中,执行如下语句:EXECchaxun_student_name'%HR%'2.创建一个依据学生学号返回其所有课程平均分的存储过程Student_average。CREATEPROCEDUREstudent_average(@clvar

7、char(8))ASRETURN(SELECTAVG(GRADE)FROMscWHERESNO=@cl)说明:请同学们使用下而的SQL语句调用该存储过程,查询学号为20002059*的学生的平均分:DECLARE@nochar⑻,@avgfloatSET@no=,20002059,EXEC@avg=student_average@noPRINTCONVERT(CHAR(l()),@avg)SELECTSNAME,@avgAS’平均分’FROMstudentWHERESNO=@no3.创建一个执行插入功能的存储过程,可以

8、向chengjiao表中插入一条学生记录,该存储过程包含三个参数,分别表示学生学号、学生姓名、学生出生日期,其中学生出生日期参数默认值为’1990-1-1’。CREATEPROCEDUREINSERT_chengjiao(@clvarchar(8),@c2varchar(10),@c3datetime=’1990-l-l.)ASI

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

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

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