当前位置: 代码迷 >> Sql Server >> 求寫一個觸發器,该如何解决
  详细解决方案

求寫一個觸發器,该如何解决

热度:64   发布时间:2016-04-27 21:08:54.0
求寫一個觸發器
有兩個table.要在table2上作個update時的觸發器.當update   table2的數量時,判table2的該產品sum(數量)不能和table1的該產品sum(數量)不相等.
一句話就是,兩個表的各產品總數得一樣.


table1  
(
產品名稱   char(20)
數量   int
)

table2
(
產品名稱   char(20)
位置       int
數量       int
)

------解决方案--------------------
table1是主表,table2是細表?
------解决方案--------------------
create trigger tu_table2 on table2
for update
as
if update(数量) and exists(select 1 from inserted i,deleted d where i.产品名称=d.产品名称 and isnull(i.数量,0) <> isnull(d.数量,0))
begin
update table1
set 数量=t.数量
from table1,(select 产品名称,sum(数量) as 数量 from table2 group by 产品名称)t,inserted i,deleted d
where table1.产品名称=i.产品名称 and i.产品名称=d.产品名称 and isnull(i.数量,0) <> isnull(d.数量,0) and t.产品名称=i.产品名称
end
------解决方案--------------------
數據舉例
table1
產品名稱 數量
1.產品1 50
2.產品2 60

table2
產品名稱 位置 數量
1.產品1 100 10
2.產品2 100 60
3.產品1 200 30 -----数据改变

修改后
table2
產品名稱 位置 數量
1.產品1 100 10
2.產品2 100 60
3.產品1 200 40
才能提交 更新 ?



  相关解决方案