【问题标题】:Update SQL Server via MS Access Routine (Inner Join Error)通过 MS Access 例程更新 SQL Server(内部连接错误)
【发布时间】: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];

【问题讨论】:

    标签: sql-server vb.net inner-join


    【解决方案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];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多