• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

关于一个仓库问题的触发器

jhbseawater 2008-04-09 05:08:48
现在有一张仓库资料表a和一张商品库存查询表b,查询表b只是实现查询功能。
a有字段:仓库编码(主键),仓位编码(主键),商品条码(主键),库存量,可用量
b有字段:商品条码(主键),库存量,可用量
现在用触发器实现两个功能:
1.若a中插入新的商品条码,库存量,可用量,在b中也插入相同的一条记录
2.若b中更新已存在商品条码的库存量和可用量,再b中也更新库存量和可用量(在原有基础上增加或减少)
很少接触数据库,搞数据库的人走了,现在由我负责。麻烦赐教。呵呵
还有一个小问题,存储过程传入的参数可以是一个这样的字符串“库存量>100 and 可用量<200”吗,就是说要筛选的字段是不确定的。如果想实现这样,有什么好的方法吗
第一次提问,盼回复。呵呵。
谢了
...全文
73 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jhbseawater 2008-04-12
非常感谢,收益非浅!
回复
子陌红尘 2008-04-09
汗,狂汗......
回复
-狙击手- 2008-04-09
[Quote=引用 6 楼 libin_ftsafe 的回复:]
偶也写了个大概,顺便跟你交流一下,:)
[/Quote]

向你学习,

敬礼!!
回复
-狙击手- 2008-04-09
create trigger trig_name
on ta
for insert
as
update b
set 库存量 = 库存量+i.库存量,
可用量 = 可用量+i.可用量
from tb b right join inserted i on b.商品条码 = i.商品条码
where exists(select 1 from inserted where b.商品条码 = 商品条码)

insert into tb
select 商品条码,库存量,可用量
from inserted i
where not exists(select 1 from tb where 商品条码 = i.商品条码)
回复
子陌红尘 2008-04-09
偶也写了个大概,顺便跟你交流一下,:)
回复
-狙击手- 2008-04-09
[Quote=引用 4 楼 libin_ftsafe 的回复:]
3楼应该注意两点:

1、如果inserted中包含多条重复且在库存中不存在的商品条码,应该汇总

2、先insert不存在的商品条码记录到库存之后,再执行update操作仍然影响刚刚insert的数据
[/Quote]

写个大概
不好意思,下次注意
回复
子陌红尘 2008-04-09
3楼应该注意两点:

1、如果inserted中包含多条重复且在库存中不存在的商品条码,应该汇总

2、先insert不存在的商品条码记录到库存之后,再执行update操作仍然影响刚刚insert的数据
回复
-狙击手- 2008-04-09
create trigger trig_name
on ta
for insert
as
insert into tb
select 商品条码,库存量,可用量
from inserted i
where not exists(select 1 from tb where 商品条码 = i.商品条码)
update b
set 库存量 = 库存量+i.库存量,
可用量 = 可用量+i.可用量
from tb b right join inserted i on b.商品条码 = i.商品条码
where exists(select 1 from inserted where b.商品条码 = 商品条码)
回复
子陌红尘 2008-04-09
2、使用动态SQL语句

declare @condition varchar(200)
set @condition = '库存量>100 and 可用量 <200'

exec('select * from b where '+@condition)
回复
子陌红尘 2008-04-09
1、

create trigger trg_A on A 
for insert
as
begin
update b set 库存量=b.库存量+i.库存量,库存量=b.可用量+i.可用量 from inserted i

insert into b(商品条码,库存量,可用量)
select
i.商品条码,sum(i.库存量),sum(i.可用量)
from
inserted i
where
not exists(select 1 from b where 商品条码=i.商品条码)
group by
i.商品条码
end
go
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-09 05:08
社区公告
暂无公告