現在、私はある種のデータマッピングに取り組んでいます。テーブルTable1
とで挿入時に、挿入されているが結合されたテーブルには出力されない出力列
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
:私は、次の3つのテーブルを持っているとしましょう0の列T1ID
およびT2ID
は、自動的に移入されるID列です。 私が今やりたいことはTable1
にTemporaryTable
から値を挿入し、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にアクセスできないため、これは明らかに機能しません。これはどうすればできますか?
で利用可能なすべての列を使用して挿入をシミュレートするために、いくつかの常に偽条件でMERGEコマンドを使用することができます質問(回答あり):https://stackoverflow.com/questions/41184310/insert-into-merge-select-sql-server/41184461#41184461 もう1つはhttps://stackoverflow.com/questions/です。 38213008/t-sql-insert-data-into-parent-and-child-tables –