您的位置:首页 > 数据库

数据库学习笔记-触发器

2017-09-10 18:45 288 查看

步骤

创建触发器

①启动SQL Server 查询编辑器,选择要操作数据库,如“sc(学生选课)”数据库。

②在查询命令窗口中输入以下CREATE TRIGGER语句,创建触发器。

为sc(学生选课)表创建一个基于UPDATE操作和DELETE操作的复合型触发器,当修改了该表中的成绩信息或者删除了成绩记录时,触发器被激活生效,显示相关的操作信息。

CREATE TRIGGER tri_UPDATE_DELETE_sc
ON sc
FOR UPDATE,DELETE
AS
IF UPDATE(Grade)
BEGIN
SELECT INSERTED.Cno,DELETED.Grade AS Grade,
INSERTED.Grade AS Grade
FROM DELETED ,INSERTED
WHERE DELETED.Sno=INSERTED.Sno
END
ELSE IF COLUMNS_UPDATED( )=0
BEGIN
SELECT Sno=DELETED.Sno,DELETED.Cno,
DELETED.Grade AS Grade
FROM DELETED
END
ELSE
PRINT '更新了非成绩列!'




触发触发器

①在查询命令窗口中输入以下UPDATE sc语句,修改成绩列,激发触发器。

UPDATE SC
SET Grade=Grade+5
WHERE Cno='2'




②在查询命令窗口中输入以下UPDATE sc语句修改非成绩列,激发触发器。

UPDATE sc
SET Cno='5'
WHERE cno='2'




③在查询命令窗口中输入以下DELETE sc 语句,删除成绩记录,激发触发器。

DELETE sc
WHERE cno='5'




比较约束与触发器的不同作用期

①在查询命令窗口中输入并执行以下ALTER TABLE 语句,为sc表添加一个约束,使得成绩只能大于等于0且小于等于100。

ALTER TABLE sc
ADD CONSTRAINT CK_grade
CHECK(Grade>=0 AND Grade<=100)




②在查询命令窗口中输入并执行以下UPDATE sc语句,查看执行结果。

UPDATE sc

SET成绩=120

WHERE 课程号=’108’

UPDATE sc
SET Grade=120
WHERE Cno='1'




③在查询命令窗口中输入执行以下UPDATE sc语句,查看执行结果。

UPDATE sc
SET grade=90
WHERE Cno='3'




删除新创建的触发器

①在查询命令窗口中输入DROP TRIGGER 语句,删除新创建的触发器。

DROP TRIGGER tri_UPDATE_DELETE_sc


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: