Je travaille actuellement sur un type de mappage de données. Disons que je les trois tableaux suivants:Lors de l'insertion, les colonnes de sortie qui n'ont pas été insérées mais dans les tables jointes
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
Dans le tableau Table1
et Table2
les colonnes T1ID
et T2ID
sont des colonnes d'identité qui sont remplies automatiquement. Ce que je veux faire maintenant est d'insérer les valeurs de TemporaryTable
dans Table1
et enregistrer la valeur dans la colonne RunID
de TemporaryTable
et le nouveau produit T1ID
-Table2
Le tableau résultant devrait ressembler à ceci:
Tableau 1
T1ID | DocID | Amount 1 5 10 2 6 20 3 6 50 4 7 50 5 6 12
Tableau2
T2ID | RUNID | T1Id 1 B 1 2 C 2 3 D 3 4 E 4 5 C 5
Je voudrais le faire avec l'aide de l'instruction output
. Quelque chose comme ceci:
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
Cela évidemment ne fonctionne pas puisque je n'ai pas accès à t.RunId dans l'instruction de sortie. Comment cela pourrait-il être fait?
Je ne sais pas si cela doit être fermé en double, mais voici deux très liés questions (avec réponses): https://stackoverflow.com/questions/41184310/insert-into-merge-select-sql-server/41184461#41184461 Et le second: https://stackoverflow.com/questions/ 38213008/t-sql-insert-data-en-parent-et-child-tables –