向“订单”表插入数据时引发的INSERT触发器

向“订单”表插入数据时引发的INSERT触发器,第1张

语句

create trigger ins on 订单

for insert

as

begin

if Exists(select t2.产品ID from inserted t1,产品 t2 where t1.产品ID =t2.产品ID)

andExists(select t2.员工ID from inserted t1,员工 t2 where t1.员工ID =t2.员工ID)

andExists(select t2.客户ID from inserted t1,客户 t2 where t1.客户ID =t2.客户ID)

begin

修改“产品”表中相应产品的库存量

end

else

begin

raiserror 50001 '不允许插入数据!'

rollback transaction

end

end

方案一,自己根据某种逻辑生成OrderID,这样将数据对应放到两个表里就可以。

方案二,订单表OrderID设置为自增的,这样先在订单表里插入数据。这样有分两种方法:

一,取订单表里最后的OrderID插入到详细表里,然后在详细表里插入数据。

二,你在订单表插入数据的时候,同时插入当时的时间,然后根据时间取出OrderID,在详细表里插入数据行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11870402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存