如何使用不同的自定义生成的主键SQL Server插入重复的记录

时间:2012-04-27 21:21:26

标签: sql insert sql-server-2008-r2

在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' 

1 个答案:

答案 0 :(得分:6)

不是在SELECT列表中指定PK列,而是将其替换为新键的文字值:

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