sql - 如何在插入期间存储从表中选择的列?
问题描述
我有一个临时表,其中包含从另一个表复制并更新的行子集。在将它们插入原始表时,我想用临时表中的原始 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;
解决方案
推荐阅读
- c# - 空间理解受限于小区域
- active-directory - 一般来说,对于 Active Directory,大多数公司使用什么作为人员的唯一标识符?
- tensorflow - 如何为 Tensorflow 中的每个通道应用 tf.map_fn
- mysql - MySQL 查询停滞 - 这个 MySQL 查询是否有更有效的解决方案?
- python - Pylint 模块“cv2”没有“合并”成员
- ios - AVHapticPlayer async call finishWithCompletionHandler: (type=3) 30秒后没有得到回复
- git - 将远程存储库和远程分支作为 checkout 的参数是什么意思?
- python - 如果不奇怪,如何不返回任何内容或跳过列表中的某个元素
- docker - 如何加入另一个物理服务器或 VM 作为 docker swarm 机器的节点?
- php - Docker 服务未链接 - WordPress 未连接到 MySQL