Sql Server觸發器(插入刪除操作)


插入觸發器:例(觸發器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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM