您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

插入后使用触发器更新多行(SQL Server)

插入后使用触发器更新多行(SQL Server)

要点是:您假设将为插入的每一行调用触发器- 。

调用 触发器-但是该语句可以一次插入多个行。

在这种情况下,Inserted触发器内的表将包含 和您的语句:

SELECT @size = productSize FROM inserted
SELECT @color = productColor FROM inserted
SELECT @quantity = productQuantity FROM inserted
SELECT @product = productId FROM inserted

将会失败或碰巧只选择插入的第一行而忽略其余的插入。

你需要重写你的扳机,以应付这一事实Inserted可以包含 同时

触发器中的代码应如下所示:

UPDATE stock 
FROM Inserted i
SET 
     stock.quantity = quantity - i.quantity 
WHERE 
     stock.size = i.size 
     AND stock.color = i.color 
     AND stock.product = i.product
SQLServer 2022/1/1 18:39:52 有498人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶