触发器的定义与使用

来源:互联网 发布:2016双11淘宝退货率 编辑:程序博客网 时间:2024/06/07 18:26

--每次插入数据时候都把数据值打印出来
create trigger tri_student_after
on student after insert
as
begin
declare @sClassId int
declare @SName nvarchar(50)
declare @sAge int
select @sClassId=sClassId,@SName=sName,@sAge=sAge from student
print @sClassId
print @SName
print @sAge
end
drop trigger tri_student_after
select * from student
insert into student(sClassId,sName,sAge) values(1,'刘晓飞',20);
--当删除数据的时候将删除的表的数据备份到另外一个表中
select top 0 * into _bak from student
select *  from student
select * from  _bak
create trigger tri_student_after_delete
on student after delete
as
begin
insert into _bak
select * from deleted--临时表中数据插入到_bak
end
--------------------
drop trigger tri_student_after_delete
delete from student where sName='刘晓飞2';
select * from _bak
delete from _bak
---------------------------------------------
--替换触发器(instead of),替换删除操作
create trigger tri_student_delete_insteadof
on student instead of delete
as
begin

   insert into _bak(sClassId,sName,sAge) values(1,'替换删除',20 ) ;
end

ps:

同一个操作的触发器,一个就足够了。比如删除触发器,和替换删除触发器。这两个都存在就会出错。导致,只执行删除替换操作。而不执行删除触发器。

原创粉丝点击