求一存储过程!!!

ingernew 2003-08-29 08:53:08
有二个表
一个计划生产表,有生产的产品字段,和一个生产数量字段以及一个是否完成字段
一个入库表,有产品字段,入库数量

存储过程是这样的!
首先在计划表中计划生产一个产品,一定数量
入库表中就随时跟踪这一产品的入库情况,当累计数量大等于计划数时,在计划完成字段注上完成(true)

请问这个存储过程是???
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ingernew 2003-08-29
  • 打赏
  • 举报
回复
谢谢 zjcxc(邹建) 和 lionstar(小狮子) ,我还没有试,但我相信没有问题!!
zjcxc 2003-08-29
  • 打赏
  • 举报
回复
因为在触发器发生时,数据并未更新到表中,所以要从触发器的两个特殊表inserted和deleted中取数,并与入库表的数据合并,才能做为数据判断的依据.
zjcxc 2003-08-29
  • 打赏
  • 举报
回复

这个用触发器来处理:
create trigger t_update on 入库表
for insert,update
update 计划生产表 set 完成=1
from 计划生产表 a inner join (
select a.产品,入库数量=a.入库数量+isnull(b.入库数量,0)-isnull(c.入库数量,0)
from 入库表 a
left join inserted b on a.产品=b.产品
left join deleted c on a.产品=b.产品
) b on a.产品=b.产品
where a.完成=0 and a.生产数量<b.入库数量
go
ingernew 2003-08-29
  • 打赏
  • 举报
回复
但这不是一对一的,有可能有几次入库呢,这就要合计数量的!
lionstar 2003-08-29
  • 打赏
  • 举报
回复
可以在入库表建立触发器实现你的功能
create trigger tri_name
on 入库表
for insert,update
as
update set 计划生成表.是否完成=true
from 计划生成表,inserted
where 计划生成表.入库数量<=inserted.入库数量

go

祝你好运!!!

开心就好!!!

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧