




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广州中医药大学信息技术学院实 验 报 告课程名称:网络数据库编程专业班级:计算机科学与技术(08)级学生学号:2008081042学生姓名:王湛泽实验名称:触发器的应用实验成绩:课程类别:必修 限选 公选 其它实验四 触发器的应用实验类型:应用性实验 实验日期: 2011-4-13 实验目的1. 熟悉Transact_sql数据库程序设计2. 熟悉触发器的设计及应用实验内容与要求 将1-5题的结果文件以题目命名,如题1,题2.题3,题4。题5,放在自己的文件夹中。1. 利用SQL语句建立一个数据表STUDENT_INFO,其中包括以下字段:Sno INT NOT NULL,Sname CHAR
2、(10) NOT NULL, Sex CHAR(2) ,Telephone CHAR(16),Deptno char(8) NOT NULL ,SCORE INT建立一个数据表DEPT_INFO,其中包括以下字段:DEPTNO char(8) NOT NULL PRIMARY KEY,DEPTNAME CHAR(20),DEPTADMIN CHAR(16)CREATE TABLE dbo.STUDENT_INFO(Sno int NOT NULL,Sname char(10) NOT NULL,Sex char(2) NULL,Telephone char(16) NULL,Deptno ch
3、ar(8) NOT NULL,SCORE int NULL)GOCREATE TABLE dbo.DEPT_INFO(DEPTNO char(8) NOT NULL,DEPTNAME char(20) NULL,DEPTADMIN char(16) NULL, CONSTRAINT PK_DEPT_INFO PRIMARY KEY CLUSTERED (DEPTNO ) ON PRIMARY)GO2. 在表STUDENT_INFO中创建一个触发器,将成绩(SCORE)限制在0-100之间。注意:CREATE TRIGGER要在单个批处理中执行CREATE TRIGGER IN_STUON ST
4、UDENT_INFOFOR INSERTASBEGINDECLARE X INTSELECT X=SCORE FROM INSERTEDIF(X100)BEGINROLLBACK TRANSACTIONPRINT (成绩(SCORE)限制在0-100之间)ENDEND3. 使用JDBC对数据库的事务操作及触发器2种方法实现以下功能。建立两个表: Create Table Student( -学生表 StudentID int primary key, -学号 ) Create Table BorrowRecord( -学生借书记录表 BorrowRecord int identity(1,1)
5、, -流水号 StudentID int , -学号 BorrowDate datetime, -借出时间 ReturnDAte Datetime, -归还时间 ) 要求实验的功能有:(1) 如果更改了学生的学号,希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);CREATE TRIGGER UP_StudentON StudentFOR UPDATEASIF UPDATE(StudentID)BEGINUPDATE BorrowRecordSET StudentID=I.StudentID FROM BorrowRecord B, DELETED D, INSERTEDI
6、 WHERE B.StudentID=D.StudentID END(2) 如果该学生已经毕业,希望删除他的学号的同时,也删除它的借书记录。CREATE TRIGGER DEL_StudentON StudentFOR DELETEASDELETE BorrowRecordFROM BorrowRecord B , DELETED DWHERE B.StudentID=D.StudentID 4. 验证讲稿中后面2张幻灯片练习1。(以下为理论知识题)6、在SQL SERVER中如何获取当前日期和时间?getdate()7、设置在1小时后查询表SALARY。BEGINWAITFOR DELAY
7、1:00:00SELECT * FROM SALARYEND8、什么是触发器,有什么优点?触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。 与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT
8、比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。 触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。 一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。触发器的优点如下: 触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。触发器可以通过数
9、据库中的相关表进行层叠更改。触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。9、触发器有哪三种类型,并简述触发器的原理。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更改记录或者删除记录时,当事件发生时,才被自动地激活。10、Inserted和deleted 表的作用是什么?Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。一个数据库系统中有两个虚拟表用于存储在表中记录改
10、动的信息,分别是: 虚拟表Inserted ,虚拟表Deleted。Inserted 表 保存 insert或update以后更新的内容Deleted 表 保存 delete 或update前更新的内容11、分别写出如何用系统存储过程实现如下操作l 查看表中的触发器select * from sysobjects where xtype=TRl 查看触发器的定义文本exec sp_helptext 触发器名称l 查看触发器的所有者和创建日期exec sp_help 触发器名称l 查看触发器的相关依赖性sp_depends 触发器名称 实验体会请在下方写出你对本实验的看法,例如你认为实验难度如何?你能够独
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗行业合规管理体系建设与合规培训合同
- 如何做好医学见习
- 井盖危险安全教案(中班)
- 股权转让与体育产业融合发展协议
- 精英教育资源专属学区房使用权及年限限制转让合同
- 医疗机构间数据共享保密及合规协议
- 数字化转型技术入股及市场推广合作协议
- 中医护理基础理论与临床实践
- 国网安规培训课件
- 新任校长培训体系构建与实施策略
- 安徽省1号卷A10联盟2025届高三5月最后一卷化学试题及答案
- 2022《农产品质量安全法》全文解读与学习
- 2025届河北省邢台市清河中学高三下学期5月模拟物理试卷(原卷版+解析版)
- 2025年全国保密教育线上培训考试试题库附参考答案(巩固)带答案详解
- 【部编版】六年级语文下册《语文园地五》精美课件
- 登革热防控知识培训
- 糖尿病患者血脂管理中国专家共识(2024版)解读
- 生物化学技术基本原理和应用
- 浙江省大中型水库控制运用计划编制导
- 消防安全有关的重点工种人员及消防安全管理
- APG IV 系统(修订版)
评论
0/150
提交评论