错误!不能销售 消息 3609,级别 16,状态 1,第 1 行 事务在触发器中结束。批处理已中止。 5

alterTRIGGERTrig_insert1ON卷烟销售表FORINSERTASBEGINTRANSACTIONIFEXISTS(SELECT*FROMINSERTE... alter TRIGGER Trig_insert1
ON 卷烟销售表
FOR INSERT
AS
BEGIN TRANSACTION
IF EXISTS (SELECT * FROM INSERTED where 卷烟品牌 not in(SELECT 卷烟品牌 FROM 卷烟库存表)
)
BEGIN
print '错误!不能销售'
--回滚事务
ROLLBACK TRANSACTION
RETURN
END

else IF EXISTS (SELECT * FROM INSERTED where 卷烟品牌 in(SELECT 卷烟品牌 FROM 卷烟库存表 where
库存数量<= 0)
)
BEGIN
print('错误!该卷烟库存小于等于0,不能销售。')
ROLLBACK TRANSACTION
RETURN
END

else
begin
DECLARE @pingpai VARCHAR(40)
DECLARE @xiaosl MONEY
SET @pingpai= (SELECT 卷烟品牌 FROM INSERTED)
SET @xiaosl= (SELECT 销售数量 FROM INSERTED)
UPDATE 卷烟库存表 SET 库存数量= 库存数量- @xiaosl,库存金额= (库存数量- @xiaosl)*库存单价
WHERE 卷烟品牌= @pingpai
COMMIT TRANSACTION
end
GO
insert into 卷烟销售表 values('11','ytty',2,20,null)
展开
 我来答
skyfukk
2012-05-25 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:632万
展开全部
请检查卷烟销售表是否不存在该卷烟的品牌

也就是说卷烟库存表中不含有卷烟销售表插入的卷烟品牌
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangjie_yahoo
2012-05-23 · TA获得超过151个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:51万
展开全部
根据触发器的代码分析,插入到 “卷烟销售表” 的 ‘卷烟品牌’ 不在 “卷烟库存表”中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式