[英]SQL Server TRIGGER UPDATE on change
我正在尝试为网上商店进行触发更新,我希望每次向订单中添加某些内容时更新总金额( col2
),所有订单都在一个表( table1
)中完成,然后存储所有订单在另一个表( table2
)中。 我不断收到table1.col1 = table2.col1
的错误,其中col1
是一个 ID。
CREATE TRIGGER table2.col2
ON table1
FOR UPDATE
BEGIN
UPDATE table2
SET newTable =
(SELECT table2.col2 AS p
FROM table2
JOIN inserted AS i
ON p.orderId = i.orderId)
WHERE table2.orderId = table1.orderId
END
您可能可以在没有子查询的情况下重写它,但快速修复是将inserted
添加到您的where
子句中,如下所示:
CREATE TRIGGER table2.col2
ON table1
FOR UPDATE
BEGIN
UPDATE table2 SET
newTable = (
SELECT table2.col2 AS p
FROM table2
JOIN inserted AS i
ON p.orderId = i.orderId
)
WHERE table2.orderId in (select orderId from Inserted)
END
Inserted
是一个伪表,其中包含一行,其中包含用于更新的每一行的新数据(大列除外)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.