1、概念
触发器是一种特殊的存储过程。
它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。
所以触发器可以用来实现对表实施复杂的完整性约束。
触发时间:before,after.
触发事件:insert,update,delete三种。
触发类型:行触发、语句触发
DML触发器分为:
1、 after(之后触发)
a、 insert触发器
b、 update触发器
c、 delete触发器
2、 instead of (之前触发)
2、语法
create trigger tgr_name
on table_name
with encrypion –加密触发器
for update
as
Transact-SQL
增删改之前触发:
for update/insert/delete
增删改之后触发:
for instead of update/insert/delete
3、代码示例
--创建insert插入类型触发器
if (object_id('tgr_classes_insert', 'tr') is not null)
drop trigger tgr_classes_insert
go
create trigger tgr_classes_insert
on classes
for insert --插入触发
as
--定义变量
declare @id int, @name varchar(20), @temp int;
--在inserted表中查询已经插入记录信息
select @id = id, @name = name from inserted;
set @name = @name + convert(varchar, @id);
set @temp = @id / 2;
insert into student values(@name, 18 + @id, @temp, @id);
print '添加学生成功!';
go
--插入数据
insert into classes values('5班', getDate());
--查询数据
select * from classes;
select * from student order by id;