读书人

器,该如何解决

发布时间: 2012-03-18 13:55:38 作者: rapoo


有表,更新了一表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

--未测试!

读书人网 >.NET

热点推荐