INSERT INTO dbo.T_51_001( c001,c002,c003,c004,c005,c009,c011)
SELECT 22222,'23',firstreadtime,lastreadtime,'5' ,'9','11'
FROM dbo.alarmclient
[Err] 23000 - [SQL Server]Violation of PRIMARY KEY constraint 'PK__T_51_001__DB0FA398451F3D2B'. Cannot insert duplicate key in object 'dbo.T_51_001'.
01000 - [SQL Server]The statement has been terminated.
t_51_001表中没有数据,为什么会报错
------解决思路----------------------
你的select中有常量,会不会是这个常量重复引起的?
------解决思路----------------------
楼上已经说的很清楚了,违背了主键约束,主键字段值重复,先找下主键列
要么狠点

alter table dbo.T_51_001
drop constraint dbo.T_51_001.PK__T_51_001__DB0FA398451F3D2B
再插入数据试试
------解决思路----------------------
因为 dbo.alarmclient 表不止一条记录,所以插入的多条数据主键都是 (22222,11)!
------解决思路----------------------
楼主语文老师是异次元来的!
你自己看下面这部分的执行结果,想想这批数据插入dbo.T_51_001会不会重复。
SELECT 22222,'23',firstreadtime,lastreadtime,'5' ,'9','11'
FROM dbo.alarmclient
------解决思路----------------------
c001,c002
这两列对数据有什么要求吗?
没有的话
INSERT INTO dbo.T_51_001( c001,c002,c003,c004,c005,c009,c011)
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()),'23',firstreadtime,lastreadtime,'5' ,'9','11'
FROM dbo.alarmclient
类似这样,不让主键重复就可以了