使用引用表 SQL Server 更新表中的多条记录

Posted

技术标签:

【中文标题】使用引用表 SQL Server 更新表中的多条记录【英文标题】:Update multiple records in table by using a reference table SQL Server 【发布时间】:2021-01-11 07:05:43 【问题描述】:

我正在尝试通过使用来自其他两个表的引用来更新 SQL 中的表。我需要使用来自Table A 的记录的ID 更新Table C,但仅限于Temp Table B 的列存在于Table A 中的地方

表 A

ID ReferenceNumber
1 123
2 321
3 213
4 413

临时表 B

ID ExtractedNum
1 213
2 413
3 321
4 123

预期结果

表 C

TableA_ID TableB_ID
3 1
4 2
2 3
1 4

我尝试了几个不同的查询,但没有一个按我需要的方式工作:

UPDATE table_c 
  SET
      table_c.tablea_id = a.id -- int    
FROM table_a a
WHERE table_c.tableb_id =
(
    SELECT t.Id, 
           t.ExtractedNum
    FROM #tempTableB t, 
         table_a a2  
    WHERE t.ExtractedNum = a2.ReferenceNumber
);

【问题讨论】:

【参考方案1】:
UPDATE c
SET c.tablea_id=a.id
FROM tableC c INNER JOIN
tableA a ON a.id=c.tablea_id INNER JOIN
#tempTableB b ON b.ExtractedNum=a.ReferenceNumber

【讨论】:

以上是关于使用引用表 SQL Server 更新表中的多条记录的主要内容,如果未能解决你的问题,请参考以下文章

更新 SQL Server 中的多条记录

使用另一个表中的内容更新 SQL Server 表[重复]

SQL Server:交叉引用一个表中的多个列与另一个表中的多个列

插入后使用 SQL Server 触发器更新另一个表中的列

如何将数据插入到sql server中的自引用表中? [复制]

sql语句 如何将一个表中的多条数据显示在一行呢???