首页 > 解决方案 > 如何在插入期间存储从表中选择的列?

问题描述

我有一个临时表,其中包含从另一个表复制并更新的行子集。在将它们插入原始表时,我想用临时表中的原始 id 捕获它们插入的 id。

不幸的是,我收到了一个错误

无法绑定多部分标识符“temp.id”。

DECLARE @MappingTable TABLE (
    old_id BIGINT,
    new_id BIGINT
)

SELECT *
INTO #Table1Temp
WHERE col1 = true;

INSERT INTO dbo.table1 ([col1], [col2], [col3], [col4])
    OUTPUT
        inserted.id, temp.id
        INTO @MappingTable (new_id, old_id)
SELECT [col1], [col2], [col3], [col4]
FROM #Table1Temp temp;

标签: sqlsql-servertsql

解决方案


推荐阅读