【发布时间】:2017-07-19 09:58:30
【问题描述】:
我目前正在研究某种数据映射。假设我有以下三个表:
临时表
运行ID |文档 ID |数量 7 50 C 6 12表 1
T1ID |文件ID |数量 1 5 10 2 6 20 3 6 50表 2
T2ID |运行ID | T1Id 1 乙 1 2 C 2 3 天 3在表 Table1 和 Table2 中,列 T1ID 和 T2ID 是自动填充的标识列。
我现在要做的是将TemporaryTable中的值插入Table1并将RunID列中的值从TemporaryTable和新生成的T1ID保存到Table2
结果表应如下所示:
表 1
T1ID |文件ID |数量 1 5 10 2 6 20 3 6 50 4 7 50 5 6 12表2
T2ID |运行ID | T1Id 1 乙 1 2 C 2 3 天 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。这怎么可能?
【问题讨论】:
标签: sql sql-server sql-insert