SQL 更新同一张表
Posted
技术标签:
【中文标题】SQL 更新同一张表【英文标题】:SQL UPDate same table 【发布时间】:2013-12-02 17:05:48 【问题描述】:我知道这之前已经发布过,但我不确定我是否理解逻辑让 aloan 尝试将其纳入 JET 友好语法。
这就是我想要做的事情
我有一堆与文档相关的记录,我计划用 GUID 重命名文档,但是一些记录指向同一个文档,这就是问题所在。
表格 ID、LegacyFullPathNme、GUID、isDuplicate
我的代码循环并为每条记录分配一个 GUID。然后我想用相同的 GUID 更新重复文档记录
下面是我的哈希,但不起作用“操作必须使用可更新的查询
UPDATE [IO Documents] a
set a.codedFileName = (SELECT B.codedFileName
FROM [IO Documents] b
WHERE b.LegacyFullPathName = a.LegacyFullPathName)
目前使用宏去抛出 RBAR
【问题讨论】:
Operation must use an updatable query. (Error 3073) Microsoft Access的可能重复 【参考方案1】:我有点困惑为什么你会这样做,因为现在你的全局唯一 id 列不是唯一的,因为多行会有它。
我认为更好的方法是简单地从旧表创建一个新表,每个文件路径对应一行。
SELECT LegacyFullPathNme
INTO newtable
FROM oldtable
GROUP BY LegacyFullPathNme;
然后将 guid 添加到新表中。 (请注意,我没有测试那个 sql sn-p 所以这可能不是正确的语法,但我认为它明白了这一点)。
【讨论】:
谢谢你,这是一个非常好的解决方案,读完后我不知道我是怎么把它弄得这么复杂的。 没问题。有时一个问题只需要一双新的眼睛。祝你好运。【参考方案2】:我相信您正在寻找这样的东西:
UPDATE [IO Documents] SET
codedFileName = DMin("codedFileName","IO Documents","LegacyFullPathName='" & LegacyFullPathName & "'")
【讨论】:
以上是关于SQL 更新同一张表的主要内容,如果未能解决你的问题,请参考以下文章