我目前的情况是有两张桌子:
+--------------+-----------------+-----------------+-----------------+
| 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>
我想要做的是对第二个表中的每个记录,取NewID并将其放入第一个表中具有相同OriginalID的行中(以便它看起来像这样:
+--------------+-----------------+-----------------+-----------------+
| OriginalID | NewID | FirstName | lastName |
+--------------+-----------------+-----------------+-----------------+
| 123456 | 1111111 | billy | bob |
+--------------+-----------------+-----------------+-----------------+
作为一个注释,我关心的唯一值是OriginalID和NewID,不需要其他任何值。这将发生在具有不同名称的多个表中,因此我给出了一个通用示例。对于此示例,可以调用表
ContactRecords (first table) and NewContact (second table)
我已经阅读了几个关于此类问题的SO示例,但它们都不适合我正在寻找的解决方案。
提前致谢!
答案 0 :(得分:1)
这看起来像我们在这里多次使用的联接更新。
update old
set NewID = new.NewID
from ContactRecords as old
inner join NewContact as New on new.OriginalID = old.OriginalID