1

我有一个表和包含的数据如下所示,它被称为 TABLE_A

+++++++++++++++++++++++++++++++++++++++++++++++++
主ID | Col2 | 次要ID
+++++++++++++++++++++++++++++++++++++++++++++++++
1 | 说明 1 | 0
2 | 说明 2 | 0
3 | 说明 3 | 0
4 | 说明 4 | 0
. | ... | .
. |
.

请参阅上面的SecondaryID。它的初始值为零

我有另一个表,它叫做 TABLE_B,在下面

+++++++++++++++++++++++++++++++++++++++++++++++++
主ID | Col2 | 外键ID
+++++++++++++++++++++++++++++++++++++++++++++++++
1 | 说明 1 | 123
2 | 说明 2 | 320
3 | 说明 3 | 111
4 | 说明 4 | 999
. | ... | .
. |
.

我在 SQL Server 中遇到问题,如何使用 TABLE_A 上的ForeignKeyID值更新 TABLE_A 上的SecondaryID列,对于TABLE_A 的 PrimaryID 中的每一行等于 TABLES_B 的 PrimaryID。但是,我不想使用 LOOPING CURSORS 或其他方法来解决这个问题。

有简单的方法吗??

我急需,提前谢谢你。

4

1 回答 1

10

是的,您可以在 UPDATE 操作中进行连接。如下:

UPDATE table_a SET SecondaryID = b.ForeignKeyID
FROM table_a a
    JOIN table_b b
    on a.PrimaryID = b.PrimaryID

http://sqlfiddle.com/#!3/fdcdb/6

于 2012-04-20T01:43:54.497 回答