实例介绍
实验六 使用触发器实现数据完整性实验报告
学号: |
1181301123 |
姓名: |
曹文浩 |
班级: |
计算机1181 |
指导老师: |
冯万利,唐洁方 |
实验时间: |
5.15 |
实验地点: |
家 |
一、实验目的和要求
要求学生理解触发器实现数据完整性的重要性,掌握用触发器创建与应用的方法;掌握用触发器实现数据参照完整性的方法;理解触发器与约束的不同。
二、实验内容
(1)为表建立触发器,激活触发器进行验证。
(2)为表建立级联更新的触发器,实现参照完整性,并激活触发器进行验证。
(3)比较约束与触发器的执行顺序。
三、实验步骤
实验8.1
创建 JXGL数据库表S的插人触发器tri_INSERT_S,插人记录的年龄仅在15~30。
(1)打开SQL Server Management Studio窗口。
(2)单击“标准”工具栏上的“新建查询"按钮,打开“查询编辑器”窗口。
(3)在窗口内直接输入以下CREATE TRIGGER语句创建触发器。
(4)为JXGL数据库表S创建一个INSERT触发器,当插入的新行中年龄的值不在15~ 30时就激活该触发器,撤销该插入操作。
USE JXGL
GO
CREATE TRIGGER tri_INSERT_S ON S
FOR INSERT
AS
DECLARE @S_age tinyint
SELECT @S_age= S.age
FROM S
IF @S_age NOT BETWEEN 15 AND 30
ROLLBACK TRANSACTION
GO
(5)单击“SQL编辑器"工具栏上的“分析”按钮,检查输人的T-SQL语句是否有语法错误,如果有语法错误则进行修改,直到没有语法错误为止。
(6)确保无语法错误后单击“SQL编辑器"工具栏上的“执行”按钮,完成触发器的创建。
【实例截图】

【核心代码】
USE JXGL
GO
-- DELETE删除类型触发器
CREATE TRIGGER tgr_s_delete
ON S
FOR DELETE --删除触发
AS
PRINT '备份数据中···'
IF(object_id('S_Backup','U') IS NOT NULL)
--存在S_Backup, 直接插人数据
INSERT INTO S_Backup SELECT sno,sname,age,sex,sdept FROM deleted
ELSE
--不存在s_Backup,创建后入再插入
SELECT * INTO S_Backup FROM deleted
PRINT '备份数据成功!'
GO
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论