通过 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 UPSERT(更新/插入)SQL [重复]