【问题标题】:SQL Update records from one table column using another tableSQL 使用另一个表从一个表列更新记录
【发布时间】:2014-12-11 20:28:13
【问题描述】:

我无法将数据从一个表移动到另一个表。上下文是这样的:

我有两个表,表 A 有一个包含 Guid 的列,如下所示:

+---------+
|  ent_id |   
+---------+
|       1 | 
|       2 | 
|       3 | 
|       4 | 
|       5 | 
+---------+

表 B 也有一个包含 guid 的列,如下所示:

+---------+
|party_id |  
+---------+
|       1 |
|       2 | 
|       3 | 
|       4 | 
|       5 | 
+---------+

我需要用表 B 中的记录更新表 A 中的记录

更具体地说,我尝试了:

Update TableA
Set ent_id =  
(
   Select party_id from Table B
)

但这只会用 TableB 中的一个重复 GUID 更新每个 ent_id

【问题讨论】:

  • 你遇到了什么麻烦?
  • 什么是“向导”?您能否提供更多解释,以便我们提供帮助。
  • 我知道我可以使用游标循环遍历每条记录并将其插入,但这可能需要一段时间。我一直在寻找更好的方法。
  • GUID 是一个看起来像序列号的字段
  • 嗯?为什么不直接截断TableA 并从TableB 中插入值?我不明白你想要做什么。此外,您的示例数据的前后数据完全相同,因此无需执行任何操作。

标签: sql sql-server merge


【解决方案1】:
UPDATE TableA    
SET TableA.Field1=TableB.Field1,
TableA.Field2=TableB.Field2,
TableA.Field3=TableB.Field3,
TableA.Field4=TableB.Field4,
TableA.Field5=TableB.Field5
FROM TableA INNER JOIN TableB ON TableA.ent_id=TableB.party_id

这行得通吗?

【讨论】:

  • 非常感谢您的回答 Elena,我目前不在工作,但如果您的解决方案明天有效,我会通知您。
  • 你遇到了什么麻烦?
  • 刚刚看到您编辑的答案.. 此方法可能需要一段时间,因为可能有 50,000 条记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多