注册 登录
编程论坛 SQL Server论坛

这样触发器怎样写?

davyxjc 发布于 2010-09-06 16:16, 816 次点击
如生产订单ORD001,用料如下:
存货编号    宽度    应领数量     长度
0010      20     30
0020      40     50
0030      30     30
在保存此单时,要写一触发器,自动填写长度.计算方式为:应领数量*1000/宽度.
如:30*1000/20=1500
8 回复
#2
aei1352010-09-06 17:59
直接把长度设置为计算字段就可以了,没必要写触发器
修改表结构长度字段为:长度 as 应领数量*1000/宽度
#3
king0299122010-09-07 07:48
我也想知道
计算字段只能用代码实现哇
#4
davyxjc2010-09-07 09:54
我并没有源代码,数据库已经做好了,所以只能写触发器解决.
我是要保存的时候就把长度填写到相应的字段中.
#5
dwmax2010-09-07 10:04
CREATE  TRIGGER 触发器名称
   ON  表
   AFTER INSERT

AS

declare @ID nvarchar(20)        --存货编号
declare @width numeric(10,2)    --宽度
declare @Count numeric(10,2)    --应领数量
declare @Length numeric(10,2)    --长度

select @ID=存货编号,@Count=应领数量,@width=宽度 from INSERTED

set @Length = @Count*1000/@width

update 表 set 长度 = @Length where 存货编号 = @ID

GO


但是我比较赞同 2楼 的方式。用触发器显得有点过了。。。
#6
dwmax2010-09-07 10:07
按照你说的,或许也只有写触发器了。
#7
davyxjc2010-09-07 11:21
我保存一张订单号时,要把所用的料全部计算出长度来,上面的触发器好象一次只能保存一个记录吧?
生产订单主表与子表是通过生产订单号关联的.
#8
dwmax2010-09-07 14:22
保存一条和保存多条,方法都是一样的。
#9
zhaoyang10082010-09-19 10:27
五楼正解
1