通过 MS Access 例程更新 SQL Server(内部连接错误)

Posted

技术标签:

【中文标题】通过 MS Access 例程更新 SQL Server(内部连接错误)【英文标题】:Update SQL Server via MS Access Routine (Inner Join Error) 【发布时间】:2015-09-23 15:17:14 【问题描述】:

我从 MS Access 获取了一个查询,该查询通过与另一个表的内部连接来更新 sql server 表。 Query 通过 ms 访问接口完美运行。

当将语法复制到 vb.net 并尝试通过 vb.net 接口运行例程时,我不断收到引用“Inner”附近关键字的错误。

这是最简单形式的问题:

Table_A:
Field_Id (Auto) 
FieldX_Id (Integer)

Table_B:
Field_Id (Auto)
FieldX_Id (Integer)
FieldLink_Id (Integer)

例子:

Table_A:

Field_Id = 1

FieldX_Id = 0

Table_B:

Field_Id = 2

FieldX_Id = 1234

FieldLink_Id =1

对象:

Update Table_A (Set FieldX_Id = 1234)

查询语法:

UPDATE Table_A
INNER JOIN Table_B 
ON Table_A.FieldLink_Id = Table_B.Field_Id
SET Table_A.FieldX_Id = [Table_B].[FieldX_Id];

【问题讨论】:

【参考方案1】:

你加入的条件是:

ON Table_A.FieldLink_Id = Table_B.Field_Id

但根据您的表结构,Table_A 没有名为FieldLink_Id 的列。也许您应该将其更改为:

ON Table_A.Field_Id = Table_B.FieldLink_Id

【讨论】:

【参考方案2】:

使用这个语法UPDATE:

UPDATE ta
SET FieldX_Id = tb.[FieldX_Id]
FROM Table_A ta
JOIN Table_B tb
  ON tb.FieldLink_Id = ta.[Field_Id];

【讨论】:

以上是关于通过 MS Access 例程更新 SQL Server(内部连接错误)的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 从另一个 Access 表更新 MS Access 表

更新查询的 MS Access SQL 错误

MS Access UPSERT(更新/插入)SQL [重复]

更新 SQL Server 数据库时如何更新 MS Access 表单?

Ms Access SQL 更新语句不起作用

在 MS Access 中回滚多个 SQL 更新查询