我会收到一条错误消息:“操作必须使用可更新的查询"尝试运行SQL时。从我的理解来看,这发生在MS访问中的更新/删除查询中时,就会发生这种情况。但是,我有点困惑,因为我的数据库中还有另一个几乎相同的查询,这可以正常工作。
这是我麻烦的查询:
UPDATE [GS] INNER JOIN [Views] ON
([Views].Hostname = [GS].Hostname)
AND ([GS].APPID = [Views].APPID)
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].Hostname = [Views].Hostname,
[GS].[Date] = [Views].[Date],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
正如我之前说的,我感到困惑,因为我还有一个与此相似的查询,该查询运行完美。这就是查询:
UPDATE [Views] INNER JOIN [GS] ON
[Views].APPID = [GS].APPID
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].[Criticial?] = [Views].[Criticial?],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
我的第一个查询怎么了?为什么第二个查询在第一个问题不行时起作用?
答案
我不知道这个答案是否普遍真实,但是我通过稍微更改查询来解决此问题。
我更改了选择查询以创建临时表。然后,我将那张临时桌子放到真实的桌子上,所有这些都可以很好地工作。