2010-05-31 20 views
1

我知道如何在表A中的每一行創建表B中的一行:SQL Server的表A中的每一行創建表B一行,並把ID表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。這個問題是我不知道如何存儲查詢之間的最大值。我想我已經得到了答案,TableB在開始時將是完全空的,所以如果我在上面的INSERT SELECT語句中對TableA進行排序,那麼插入到TableB中的記錄應該在相同的順序。然後,我可以將新ID插入到TableA中,保留所有按ID排序的內容。

+0

發佈示例數據和預期結果。 – 2010-05-31 18:14:41

回答

0

您總是可以自己分配TableB標識符,並將它們插入到TableB中。換句話說,不要讓MySQL爲你選擇ID。

+0

查看我剛剛添加的編輯 – ScottyDoesKnow 2010-05-31 18:01:15

+0

MySQL或SQL Server? OP使用* sql-server *標籤。 =) – 2010-05-31 18:02:08

+0

大聲笑!所有的SQL都是MySQL! ;) – barrycarter 2010-05-31 18:05:41

相關問題