插入触发器:例(触发器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