SQL Server一個表新增資料,引發另一個表更新資料 的一個簡單觸發器例子

暖楓無敵發表於2011-09-05
create trigger updateUserRoleToUserLogin
on tb_UserRole
for insert
as
begin 
update tb_UserLogin set RoleID=t.RoleID 
  from tb_UserLogin t
end 

以上程式碼的簡單意思就是:


當tb_UserRole表中有資料插入時,級聯更新tb_UserLogin表中的RoleID欄位值為新增記錄中RoleID的值。



案例二:

有這樣一種情況,有兩張表 t1 和t2,後來由於變更,t2表中需要增加一個欄位,這個欄位正是t1表中的欄位值(ps:t1和t2之間有外間關聯)

現在保持原先的插入語句不變,但在插入資料的同時,希望修改後的t2表中新增的欄位能同步t1表中的值,怎麼辦呢?


--針對實時險情同步citycode表
create trigger tr_insert
on 實時險情
after insert
as
declare @id int,@name varchar(20),@code varchar(20)
begin
  select @id=[OBJECTID],@code=[所屬地區] from inserted;
  select @name=[cityname] from citycode where citycode=@code;
  update 實時險情 set [所在縣]=@name where [OBJECTID]=@id;
end;

insert into 實時險情(上傳時間,所屬地區,所在縣)  values('2011-10-18','1001','');

select * from 實時險情;


相關文章