我想通过仅更改一个值来将表数据复制并粘贴到同一个表中
示例: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)。
还有其他办法吗?
你不应该指定 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 等是您要复制的列。