觸發器的定義與使用

--每次插入數據時候都把數據值打印出來
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:

同一個操作的觸發器,一個就足夠了。比如刪除觸發器,和替換刪除觸發器。這兩個都存在就會出錯。導致,只執行刪除替換操作。而不執行刪除觸發器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章