1 / 7
文档名称:

实验报告5创建和使用触发器.doc

格式:doc   大小:760KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验报告5创建和使用触发器.doc

上传人:rdwiirh 2021/2/27 文件大小:760 KB

下载得到文件列表

实验报告5创建和使用触发器.doc

文档介绍

文档介绍:山西大学计算机与信息技术学院
实验报告
姓 名
许小珍
学 号
专业班级
软件一班
课程名称
数据库
实验日期

成 绩
指导教师
批改日期
实验名称
创建和使用触发器
实验目的:
理解触发器的触发过程和类型,掌握创建触发器的方法。
实验内容:
掌握使用对象资源管理器和Transact-SQL语句两种方法创建触发器。
实验步骤:
使用SQL语句创建DML触发器。
,当向“选课表”中添加数据时,如果添加的数据与学生表中的数据不匹配(如没有对应的学号),则将此数据删除。
CREATE TRIGGER trginsstudent
ON SC
FOR INSERT
AS
BEGIN
DECLARE ***@xh varchar(12)
SELECT ***@xh=
FROM inserted
IF NOT EXISTS (SELECT Sno FROM Student WHERE Sno=***@xh)
DELETE SC WHERE Sno=***@xh
END
INSERT INTO SC
VALUES ('','1',89);
,该触发器防止用户修改“选课表”的成绩。
CREATE TRIGGER trgupstudent
ON SC
FOR UPDATE
AS
IF UPDATE(Grade)
BEGIN
RAISERROR('不能修改课程分数',16,10)
ROLLBACK TRANSACTION
END
GO
另外一种触发器:
CREATE TRIGGER trgupstudent2
ON SC
INSTEAD OF UPDATE
AS
IF UPDATE(Grade)
RAISERROR('不能修改课程分数',16,10)
例3:创建一个DELETE触发器。当删除“学生表”中的记录时,自动删除“选课表”中的对应学号的记录。
CREATE TRIGGER trgdelstudent
ON student
FOR DELETE
AS
BEGIN
DECLARE ***@xh varchar(12)
SELECT ***@xh=
FROM deleted
DELETE SC WHERE Sno=***@xh
END
GO
例四:创建一个触发器,在STUDENT表中插入记录,当插入年龄大于25时,输出年龄应小于25,插入失败。
create trigger sage
on student
after insert
as
if (select sage from inserted )>25
begin
print('年龄应小于25')
end
当输入Insert into Student1 values ( ‘王阳’‘男’ 36 ‘计算机’);
例五:create trigger ss1
on student
for insert
as
begin