日期:2014-05-17  浏览次数:20664 次

insert into 插入数据说IDENTITY_INSERT 为 ON 时,才能为表'Disp'中的标识列指定显式值

set IDENTITY_INSERT Disp ON
insert into Disp select * from Disp1


消息 8101,级别 16,状态 1,第 2 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Disp'中的标识列指定显式值。



------解决方案--------------------
记录翻番意义何在
------解决方案--------------------
主健是不可以重復的

select * from Disp where Col in(select Col from Disp1)--查出主健重復的

導入不重復的Col1
set IDENTITY_INSERT Disp ON;
insert into Disp (Col1,COl2,Col2,Col4)--指定列名
select * from Disp1 where Col not in(select Col from Disp)
------解决方案--------------------
违反了 PRIMARY KEY 约束 'PK_Topic_1'。不能在对象 'dbo.Disp' 中插入重复键。
就是d插入的col1主键已经在表中disp1存在了。主键不能重复。
现在不是不能插入的问题,而是主键重复的问题。
请问你disp1,disp2数据一样吗?
SQL code
set IDENTITY_INSERT Disp ON;
insert into Disp (Col1,COl2.....)--指定列名
select Disp1.* from Disp1 left join disp on Disp1.col1=disp.col1 where disp.col1 is null
--插入不相同的col1

------解决方案--------------------
探讨
set IDENTITY_INSERT Disp ON
insert into Disp select * from Disp1


消息 8101,级别 16,状态 1,第 2 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Disp'中的标识列指定显式值。

------解决方案--------------------
SQL code
set IDENTITY_INSERT Disp ON;
insert into Disp (Col1,COl2,Col2,Col4)--指定列名
select * from Disp1 where Col not in(select Col from Disp)  --如果原表中已经存在col1的值就不插入,这就是你说的"追加"