1
我目前正在進行某種數據映射。可以說我有以下三個表:插入時,輸出的列不能插入但是已連接表
TemporaryTable
RUNID | DocId | Amount E 7 50 C 6 12
表1
T1ID | DocID | Amount 1 5 10 2 6 20 3 6 50
表2
T2ID | RUNID | T1Id 1 B 1 2 C 2 3 D 3
在表Table1
和Table2
列T1ID
和T2ID
是自動填充的標識列。 我想現在要做的就是從TemporaryTable
值插入Table1
和TemporaryTable
保存RunID
列中的值和新生成的T1ID
到Table2
結果表應該是這樣的:
表1
T1ID | DocID | Amount 1 5 10 2 6 20 3 6 50 4 7 50 5 6 12
表2
T2ID | RUNID | T1Id 1 B 1 2 C 2 3 D 3 4 E 4 5 C 5
我想在output
聲明的幫助下這樣做。這樣的事情:
CREATE TABLE #map(T1ID, RUNID)
INSERT INTO Table1(DocId, Amount)
OUTPUT inserted.T1ID, t.RunId INTO #map
SELECT t.DocId, t.Amount
FROM TemporaryTable t
這顯然不起作用,因爲我沒有訪問輸出語句中的t.RunId。這怎麼能做到?
我不知道這是否應該被關閉的重複,但這裏有2個非常相關問題(與答案):https://stackoverflow.com/questions/41184310/insert-into-merge-select-sql-server/41184461#41184461 而第二個:https://stackoverflow.com/questions/ 38213008/t-sql-insert-data-into-parent-and-child-tables –