2012-04-27 50 views
3

在SQL Server中,是否有任何简单的方法可以实现以下方案?如何插入具有不同自定义生成主键的重复记录SQL Server

在我的表中,我有大约20列和主键字段,我们把生成的数字(它不是自动生成的字段)。出于某种原因,我们想要使用不同的主键值复制某个主键值的记录。

因此,这可能是我的表中的数据(假设KEYxxx是主键字段)

KEY001 AA1 AA2 AA3 AA4 ... AA20 
KEY002 AA1 AA2 AA3 AA4 ... AA20 

我试图插入新行与相同的数据:KEY001KEY002

我一直在使用这种尝试在此查询来执行此操作,但失败,无法找到将新的主键值(KEY002)插入此查询的方法。

INSERT INTO mytable (FIELD1, field2,...field20) 
    SELECT (FIELD1, field2,... field20) 
    WHERE field_primary_key = 'KEY001' 

回答

6

而不是在SELECT列表中指定的PK柱,用新的密钥文本值替换:

INSERT INTO mytable (FIELD_PK, field2,...field20) 
SELECT 'KEY002', field2,...field20 
from mytable 
where field_primary_key='KEY001' 
+0

感谢您的回答。 – Mahender 2012-04-27 22:35:33

相关问题