gpt4 book ai didi

sql - 尝试在 SQL 中从另一个表更新一个表 - 返回 "more than one value"错误

转载 作者:行者123 更新时间:2023-12-04 23:43:59 25 4
gpt4 key购买 nike

我知道这看起来像是重复的,但我一直在处理类似的问题,但我仍然无法解决这个错误。

我不明白为什么这个 SQL UPDATE 查询会返回“子查询返回超过 1 个值”错误。

UPDATE ph
SET ph.manufacturerPartNumber = t.DocID
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID

涉及的数据如下。

SELECT t.partID,t.DocID,ph.partID,ph.manufacturerPartNumber
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID

enter image description here

我不明白“多于 1 个值”的来源。来自 t 的每个 partID 在 ph 中恰好有 1 个 partID。

我也试过以下同样的错误。

UPDATE PartHeader
SET PartHeader.manufacturerPartNumber = (SELECT t.DocID
FROM #tmp t
INNER JOIN PartHeader ph ON ph.partID = t.partID)

我确定我遗漏了一些简单的东西,但我确定遗漏了它。

感谢您的帮助,丹

最佳答案

因为您确定您编写的 SQL 没有问题,所以我想建议您可能在表上有一个 ON UPDATE/AFTER UPDATE 触发器,该触发器不是为处理多行更新而编写的一次。

这可以通过禁用任何与更新相关的触发器并尝试再次运行更新来快速验证。

编辑:

如果您在测试时确实禁用了触发器,请确保稍后重新启用它。您不能保证更新只会影响一行,因此您需要修复触发器 - 假设您希望触发器所针对的任何进程(也许是审计?)继续。

关于sql - 尝试在 SQL 中从另一个表更新一个表 - 返回 "more than one value"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14896704/

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