【发布时间】:2020-03-24 13:04:24
【问题描述】:
我正在尝试为网上商店进行触发更新,并且我希望每次向订单中添加某些内容时更新总金额 (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或deleted对象? -
我以为
SELECT引用了他们 -
您的选择引用 table2 和 table1 - 没有提到
Inserted -
您更新的明显问题是
WHERE table1.col1 = table2.col1如果不是正在更新或加入的表,则您无法在 where 子句中访问 table1。
标签: sql-server tsql triggers