SQL Server在表B中为表A中的每一行创建一行,并将ID放在表A中

时间:2010-05-31 17:49:32

标签: sql sql-server insert

我知道如何在表B中为表A中的每一行创建一行:

INSERT INTO [dbo].[TableB] SELECT 0, 5, 3, [TableAColumn] FROM [dbo].[TableA]

但我还需要将每个新TableB行的ID放入TableA中的一列,我无法弄清楚如何做到这一点。

[编辑]我忘了提到有3个TableB ID被引用到TableA,所以我不能简单地使TableB ID与TableA相同。我想到找到最大的TableA ID并将第二个和第三个TableB ID偏移最大值和最大值的两倍。问题是我不知道如何在查询之间存储最大值。

[Edit2]我想我已经得到了答案,TableB在开始时将完全为空,所以如果我在上面的INSERT SELECT语句中对TableA进行排序,那么插入到TableB中的记录应该是相同的订购。然后我可以将新ID插入TableA,保持所有内容按ID排序。

1 个答案:

答案 0 :(得分:0)

您总是可以自己分配TableB ID,并将它们也插入到TableB中。换句话说,不要让MySQL为你选择ID。