sql触发器 需要三个触发器 通过条形码自动更新单价 和算出单价和数量总和

有两张表————商品信息表和销售表商品信息表——条形码和单价销售表——条形码,单价,数量,总额,用户编号,销售时间,销售号触发器A当销售表内输入的条形码与商品信息表相同。... 有两张表————商品信息表和销售表

商品信息表 —— 条形码 和 单价

销售表 ——条形码,单价,数量,总额,用户编号,销售时间,销售号

触发器A
当销售表内输入的条形码与商品信息表相同。。自动同步插入商品信息表内单价
触发器B
当销售表内两组销售号相同时,自动同步他们的用户编号和销售时间为一致
触发器C
在销售表内输入 数量,自动算出总额=单价*数量
展开
 我来答
水色浮云
推荐于2020-12-31 · TA获得超过604个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:274万
展开全部
1.
CREATE TRIGGER TRI_A 
ON 销售表
FOR INSERT
AS
BEGIN
UPDATE 商品信息表
SET A.单价=  B.单价
   FROM 商品信息表 A, INSERTED B
   WHERE A.条形码= B.条形码
END
GO

 

2.描述不清晰,什么叫用户编号和销售时间为一致,根据什么依据来填写数据,例如,表里已经有一条记录了,销售号为001,那新插入的记录如果销售号为001,那新记录的用户编号和销售时间就同步成原来的记录的编号和时间么?

 

3.

CREATE TRIGGER TRI_C 
ON 销售表
FOR INSERT
AS
BEGIN
UPDATE 销售表 
SET 总额= ISNULL(单价,0) * ISNULL(数量,0)
END
更多追问追答
追问
第一个报错

消息 4104,级别 16,状态 1,过程 TRI_A,第 6 行
无法绑定由多个部分组成的标识符 "A.单价"。

第二个触发器就是你说的那个意思

第三个触发器只有在表插入一条新数据才能被触发
改变数量或单价,总额不会变,按了执行也没用
怎么回事呢?
追答

第一个改成

1.
CREATE TRIGGER TRI_A 
ON 销售表
FOR INSERT
AS
BEGIN
UPDATE 商品信息表
SET 单价=  B.单价
   FROM 商品信息表 A, INSERTED B
   WHERE A.条形码= B.条形码
END
GO

 

第三个,按你说的就是插入数据时,没想到你还要更改,那就得再建两个触发器,可以关注于更改。

CREATE TRIGGER TRI_C2 
ON 销售表
FOR UPDATE 
AS
IF UPDATE(单价) 
BEGIN
UPDATE 销售表 
SET 总额= ISNULL(单价,0) * ISNULL(数量,0)
END
CREATE TRIGGER TRI_C3 
ON 销售表
FOR UPDATE 
AS
IF UPDATE(数量) 
BEGIN
UPDATE 销售表 
SET 总额= ISNULL(单价,0) * ISNULL(数量,0)
END
匿名用户
2013-06-17
展开全部
虽然你说了一个大的问题.但是这些都是由小问题组成的,你划分成小问题,哪一步需要百度来帮助你?
你就按照update触发器的书写规则 一个一个写就是了.
有问题你再百度提问.明白吗?
追问
就是不会写代码。。。
自己写的一直错
所以来求助啊
求完整代码
追答
你把你的代码黏贴上面来   我可以告诉你哪一步不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式