gpt4 book ai didi

sql-server-2005 - 用于更新 INSERTED 表值的 SQL 插入触发器

转载 作者:行者123 更新时间:2023-12-03 10:08:41 25 4
gpt4 key购买 nike

我想创建一个插入触发器,如果​​它们为空,则更新所有插入行上的值,根据插入表中的另一列,新值应该从不同的表中获取。

我试过:

UPDATE INSERTED
SET TheColumnToBeUpdated =
(
SELECT TheValueCol FROM AnotherTable.ValueCol
WHERE AnotherTable.ValudCol1 = INSERTED.ValueCol1
)
WHERE ValueCol IS NULL

但我收到此错误:
Msg 286, Level 16, State 1, Procedure ThisTable_INSERT, Line 15
The logical tables INSERTED and DELETED cannot be updated.

我该怎么做?

最佳答案

您需要更新目标表,而不是逻辑表。但是,您可以加入逻辑表以找出要更新的行:

UPDATE YourTable
SET TheColumnToBeUpdated =
(
SELECT TheValueCol FROM AnotherTable.ValueCol
WHERE AnotherTable.ValudCol1 = INSERTED.ValueCol1
)
FROM YourTable Y
JOIN Inserted I ON Y.Key = I.Key
WHERE I.ValueCol IS NULL

关于sql-server-2005 - 用于更新 INSERTED 表值的 SQL 插入触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com