我有一個狀態表,另一個表中包含其他數據。我的對象ID是狀態表中的PK,所以我需要將它們插入每個新行的附加數據表中。將輸出ID插入到另一個表中
我需要插入一個新行到我的statusTable爲每個新的列表,只包含常量。
declare @temp TABLE(listingID int)
insert into statusTable(status, date)
output Inserted.listingID into @temp
select 1, getdate()
from anotherImportedTable
這讓我有足夠的新的商品ID使用。
我現在需要實際的上市數據插入到另一個表中,每一行映射到這些listingIDs之一 -
insert into listingExtraData(listingID, data)
select t.listingID, a.data
from @temp t, anotherImportedTable a
現在,這顯然是行不通的,因爲otherDataTable和@temp的ID是無關的...所以我得到太多插入的行。
如何將anotherImportedTable
中的每一行插入listingExtraData
以及唯一新創建的listingID
?我可能會觸發一些更多的SQL在我做第一塊sql中的output
?
編輯:感謝您的輸入到目前爲止,這裏就是表的樣子:
anotherImportedTable:
data
statusTable:
listingID (pk), status, date
listingExtraDa TA:
data, listingID
你看,我只希望在anotherImportedTable
創建一個進入statusTable
每行,然後把一個listingID
與行從anotherImportedTable
到listingExtraData
......我在想,我可能要求助於遊標?
第二個表格中的內容告訴它要將其與哪個記錄相關聯?請更具體地瞭解第二張桌子的結構和用途。順便說一句,從不使用隱式聯接。你所擁有的是一個交叉連接,它把第一個表的每個記錄與第二個表的第二個記錄關聯起來。即使你想這樣做,最好使用明確的語法,以便維護人員知道你的意圖,交叉連接不是偶然事件。 – HLGEM 2010-11-15 18:02:25
@HLGEM我完全同意,它有點亂,所以我最終在這裏:)感謝您的輸入 - 提供了更多的細節。 – RYFN 2010-11-16 09:26:04