sql 通过仅更改一个值来将表数据复制并粘贴到同一个表中

问题描述 投票:0回答:1

我想通过仅更改一个值来将表数据复制并粘贴到同一个表中

示例:BillingLocationID

不可能一一插入,有大量行:(

我创建了一个#temptable并更改了我想要更改的值

从 Productlocation 中选择 * 进入 #temptablepop,其中 BillingLocationID=1 且 DepartmentID=3 更新#temptablepop 设置 BillingLocationID='3'

插入 ProductLocation select * from #temptablepop 这给了我一个错误

仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“ProductLocation”中标识列的显式值。

太尝试了

将 IDENTITY_INSERT 产品位置设置为开

然后我就明白了

仅当使用列列表且 IDENTITY_INSERT 为 ON 时,才能指定表“ProductLocation”中标识列的显式值

然后我尝试了这个方法

插入表A ([id], [c2], [c3], [c4], [c5] ) 从表 B 中选择 [id]、[c2]、[c3]、[c4]、[c5]

它仍然给了我这个

违反主键约束“PK_dbo.ProductLocation”。无法在对象“dbo.ProductLocation”中插入重复的键。重复的键值为 (4284)。

还有其他办法吗?

sql sql-server database primary-key on-duplicate-key
1个回答
0
投票

你不应该指定 Id。

就这样做:

INSERT Into tableA ([c2], [c3], [c4], [c5], [BillingLocationID]) 
SELECT [[c2], [c3], [c4], [c5], '3' [BillingLocationID] 
FROM Productlocation 
WHERE BillingLocationID=1 AND DepartmentID=3

其中 C2、C3 等是您要复制的列。

© www.soinside.com 2019 - 2024. All rights reserved.