在访问中,我可以使用:
UPDATE Projects
INNER JOIN (Images INNER JOIN ImageCrossRef
ON Images.ImageId = ImageCrossRef.ImageId)
ON Projects.ProjectID = ImageCrossRef.ProjectId
SET Images.Folder = [Projects].[Folder];
基于两个内部联接更新表中的字段到另一个字段,但这在Compact SQL中失败。我已经尝试了WHERE EXISTS
的各种建议,但似乎没有任何建议。有什么建议吗?
答案 0 :(得分:0)
您应该“明确地”意识到某些类型的查询不是“可直接更新的”。这可能就是其中之一。 Microsoft Access能够做的事情,其他引擎可能没有。 (并且,一个服务器可能接受的SQL语法,另一个服务器可能不接受。)
有时可行的一种可能性是使用“嵌套查询”来提供要更新的记录(Images
)的ID以及应插入其中的值。
第二种可能性是使用“存储过程”,它基本上是由SQL服务器执行的小型子程序。该过程中的代码将像以前一样执行SELECT
,然后遍历循环中发出单个UPDATE
语句的结果集。
我不熟悉 Compact SQL来为你实际编写一个代码示例,但我希望这至少会给你一些思考的选择。 “HTH ......”