插入觸發器:例(觸發器desk1)
當表desk插入一條語句后,觸發觸發器desk1,之后向表booksheet中插入一條語句:
create trigger desk1
on desk
after insert
as
begin
declare @Name_1 varchar(10),@Sex_1 nchar(2);
declare @Phone_2 nchar(11);
declare @Number_1 int,@Time_1 nvarchar(6),@Date_1 nvarchar(10);
declare @Environment_1 nvarchar(6),@Phone_1 nchar(11),@id_1 int;
select @Phone_2=Phone from inserted;
select @Name_1=userall.Name from userall where @Phone_2=userall.Phone;
select @Sex_1=userall.Sex from userall where @Phone_2=userall.Phone;
select @Number_1=Number, @Time_1=Time, @Date_1=Date, @Environment_1=Environment,@Phone_1=Phone,@id_1=id from inserted;
insert into booksheet(Phone,Number,Time,Date,Environment,Name,Sex,id) values (@Phone_1,@Number_1,@Time_1,@Date_1,@Environment_1,@Name_1,@Sex_1,@id_1);
end
觸發器有兩個特殊的表:插入表(instered表)和刪除表(deleted表)。這兩張是邏輯表也是虛表。有系統在內存中創建者兩張表,不會存儲在數據庫中。而且兩張表的都是只讀的,只能讀取數據而不能修改數據。這兩張表的結果總是與被改觸發器應用的表的結構相同。當觸發器完成工作后,這兩張表就會被刪除。Inserted表的數據是插入或是修改后的數據,而deleted表的數據是更新前的或是刪除的數據。
刪除觸發器:例(觸發器desk2)
當表desk執行刪除語句后,觸發觸發器desk2,使得表booksheet執行刪除語句
create trigger desk2
on desk
after delete
as
begin
declare @Number_1 int,@Time_1 nvarchar(6),@Date_1 nvarchar(10);
declare @Environment_1 nvarchar(6),@Phone_1 nchar(11),@id_1 int;
select @Number_1=Number, @Time_1=Time, @Date_1=Date, @Environment_1=Environment,@Phone_1=Phone,@id_1=id from deleted;
delete from booksheet where Phone=@Phone_1 and Number = @Number_1 and Time=@Time_1 and Date=@Date_1 and Environment=@Environment_1 and id=@id_1;
end