首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

觸發器問題,该如何解决

2012-03-18 
觸發器問題有兩個表,更新了一個表A的了個字段A1,則另一個表B的字段B1也跟著變化,具體如下:新加入一記錄到

觸發器問題
有兩個表,更新了一個表A的了個字段A1,則另一個表B的字段B1也跟著變化,具體如下:
新加入一記錄到表A中,則表B的B1字段=B1字段+A1;
修改了一記錄,則表B的B1字段=B1字段-A1(舊值)+A1(新值);
刪除了一記錄,則表B的B1字段=B1字段-A1(舊值);
怎麼寫?

[解决办法]
CREATE TRIGGER tu_table1 ON table1
FOR UPDATE AS
if @@rowcount <> 1 return
declare @old int,@new int
select @old =count(1) from deleted
select @new =count(1) from inserted
if (@old=0) and (@new> 0) --插入
begin
update table2 set B1=B1+i.A1 from inserted i
where table2.主键=i.主键
return
end
if (@old> 0) and (@new> 0) --更新
begin
update table2 set B1=B1-d.A1+i.A1 from inserted i,deleted d
where table2.主键=i.主键 and table2.主键=d.主键
return
end
if (@old> 0) and (@new=0) --删除
begin
update table2 set B1=B1-d.A1 from deleted d
where table2.主键=d.主键
return
end

--未测试!

热点排行