触发器概述
触发器是一种特殊的存储过程,与普通存储过程的区别:
触发器的执行是与实践触发的,而普通存储过程是有命令调用执行的
使用触发器有助于强制保持出具的数据完整性。可以防止恶意的插入、删除、修改
创建触发器
CREATE TRIGGER 触发器名
ON { 表名 | 视图名 }
[ WITH ENCRYPTION ]
{
{INSTEAD OF | AFTER | FOR |} --instead of 前置触发器 for/after后置触发器
{ [ DELETE] [,] [ INSERT ] [,] [ UPDATE ] }
AS
[ IF UPDATE ( 列 ) [ { AND | OR } UPDATE ( 列 ) ] [ ...n ] ]
SQL语句[ ...n ]
create trigger t1
on sc
instead of delete
as
print '无权删除'
create trigger t2
on sc after insert
as
select * from sc
insterted和deleted表
只存在触发器执行过程中
在插入数据时可以从iinserted表中读取新插入的值
在删除数据时可以从deleted表中读取已经删除的数据
在更新数据时,可以从deleted表中读取已经原有的值,从inserted表中读取修改后的值