实验六 使用触发器实现数据完整性实验报告
一、实验目的和要求
要求学生理解触发器实现数据完整性的重要性,掌握用触发器创建与应用的方法;掌握用触发器实现数据参照完整性的方法;理解触发器与约束的不同。
二、实验内容
(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 JXGLGOCREATE TRIGGER tri_INSERT_S ON SFOR INSERTASDECLARE @S_age tinyintSELECT @S_age= S.ageFROM SIF @S_age NOT BETWEEN 15 AND 30ROLLBACK TRANSACTIONGO(5)单击“SQL编辑器"工具栏上的“分析”按钮,检查输人的T-SQL语句是否有语法错误,如果有语法错误则进行修改,直到没有语法错误为止。 (6)确保无语法错误后单击“SQL编辑器"工具栏上的“执行”按钮,完成触发器的创建。
USE JXGLGO-- DELETE删除类型触发器 CREATE TRIGGER tgr_s_deleteON SFOR DELETE --删除触发 ASPRINT '备份数据中···' IF(object_id('S_Backup','U') IS NOT NULL)--存在S_Backup, 直接插人数据 INSERT INTO S_Backup SELECT sno,sname,age,sex,sdept FROM deletedELSE--不存在s_Backup,创建后入再插入 SELECT * INTO S_Backup FROM deletedPRINT '备份数据成功!' GO
评论