2008-12-01 21:38
說明 數據庫中有data1、data2兩個數據表用於測試觸發器是否成功!
data1和data2的一模一樣id(自動增加)、name (nvarchar(50))、age(int)
data1中增加數據時,如果data2中存在新增的這個name就更新data2
create trigger t1_forinsert on data1
for insert as declare @name nvarchar(50) declare @age int select @name = name,@age = age from inserted if exists(select * from data2 where name = @name) begin update data2 set age = @age where name = @name end 當刪除data1中的數據時,如果data2中存在這個name,那麼把data2中的數據也刪除
create trigger t2_deleted on data1
for delete as declare @name nvarchar(50) select @name = name from deleted if exists(select * from data2 where name = @name) begin delete from data2 where name = @name end 當更新data1的數據時,如果這個name也存在於data2中,那麼data2中的數據也相應更新
create trigger t3_forupdate on data1 for update as declare @name nvarchar(50) declare @age int select @name = name,@age = age from updated if exists (select * from data2 where name = @name) begin update data2 set age = @age where name = @name end |