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

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

2012-01-24 
求寫一個觸發器有兩個table.要在table2上作個update時的觸發器.當updatetable2的數量時,判table2的該產品s

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



热点排行