求寫一個觸發器
有兩個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
才能提交 更新 ?