ich zur Zeit auf irgendeine Art von Datenzuordnung arbeiten. Können sagen, ich die folgenden drei Tabellen:On-Einsatz, Ausgabespalten, die eingefügt wern't aber in verknüpften Tabellen
TemporaryTable
RUNID | DocId | Amount E 7 50 C 6 12
Table1
T1ID | DocID | Amount 1 5 10 2 6 20 3 6 50
Table2
T2ID | RUNID | T1Id 1 B 1 2 C 2 3 D 3
In Tabelle Table1
und Table2
die Spalten T1ID
und T2ID
sind Identität Spalten, die automatisch ausgefüllt werden. Was ich jetzt tun möchte, ist, die Werte von TemporaryTable
in Table1
einzusetzen und den Wert in Spalte RunID
von TemporaryTable
und die neu T1ID
-Table2
Die resultierende Tabelle sollte wie folgt aussehen erzeugt sparen:
Table1
T1ID | DocID | Amount 1 5 10 2 6 20 3 6 50 4 7 50 5 6 12
Table2
T2ID | RUNID | T1Id 1 B 1 2 C 2 3 D 3 4 E 4 5 C 5
Ich möchte so mit Hilfe der output
Anweisung tun. So etwas wie dieses:
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
Dies funktioniert offensichtlich nicht, da ich keinen Zugriff auf t.RunId in der Ausgabe-Anweisung habe. Wie könnte das gemacht werden?
Ich bin nicht sicher zu simulieren, wenn dies als Duplikat geschlossen werden soll, aber hier sind zwei sehr ähnliche Fragen (mit Antworten): https://stackoverflow.com/questions/41184310/insert-into-merge-select-sql-server/41184461#41184461 Und die zweite: https://stackoverflow.com/questions/ 38213008/t-sQL-Insert-data-in-Eltern-Kind-Tabellen –