根据单独表中的列将值插入列

时间:2016-03-22 18:35:19

标签: sql sql-server

我目前的情况是有两张桌子:

+--------------+-----------------+-----------------+-----------------+
| OriginalID   |   NewID         |   FirstName     |   lastName      |
+--------------+-----------------+-----------------+-----------------+
|     123456   |                 |     billy       |      bob        |
|     234567   |                 |     tommy       |      smith      |
|     987654   |                 |     sarah       |      anders     |
+--------------+-----------------+-----------------+-----------------+ etc etc

+--------------+-----------------+
| OriginalID   |   NewID         |
+--------------+-----------------+
|     123456   |  1111111        |
|     234567   |  1111112        |
|     987654   |  1111113        |
+--------------+-----------------+

我没有深入到流程本身,我从第一个表中取出一个记录并将其插入另一个系统,该系统以第二个表的形式给出一个记录(为它生成一个自定义ID)。 / p>

我想要做的是对第二个表中的每个记录,取N​​ewID并将其放入第一个表中具有相同OriginalID的行中(以便它看起来像这样:

+--------------+-----------------+-----------------+-----------------+
| OriginalID   |   NewID         |   FirstName     |   lastName      |
+--------------+-----------------+-----------------+-----------------+
|     123456   |  1111111        |     billy       |      bob        |
+--------------+-----------------+-----------------+-----------------+

作为一个注释,我关心的唯一值是OriginalID和NewID,不需要其他任何值。这将发生在具有不同名称的多个表中,因此我给出了一个通用示例。对于此示例,可以调用表

ContactRecords (first table) and NewContact (second table)

我已经阅读了几个关于此类问题的SO示例,但它们都不适合我正在寻找的解决方案。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这看起来像我们在这里多次使用的联接更新。

update old
set NewID = new.NewID
from ContactRecords as old
  inner join NewContact as New on new.OriginalID = old.OriginalID