1. 首页
  2. 数据库
  3. MySQL
  4. 使用触发器实现数据完整性实验.docx

使用触发器实现数据完整性实验.docx

上传者: 2021-05-23 07:25:43上传 .DOCX文件 2.27 MB 热度 26次

实验六 使用触发器实现数据完整性实验报告

学号: 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编辑器"工具栏上的“执行”按钮,完成触发器的创建。

from clipboard

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

用户评论