向一个表中导入另一个表中的数据,两个表差别:其中目的表要求自动编号。
用
SET IDENTITY_INSERT company1 ON
insert into company1
select * from company
SET IDENTITY_INSERT company1 OFF
出现
服务器: 消息 8101,级别 16,状态 1,行 33
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'company1 ' 中为标识列指定显式值。
------解决方案--------------------
SET IDENTITY_INSERT company1 ON
insert into company1(显示指定列名)
select 显示指定列名 from company
SET IDENTITY_INSERT company1 OFF
------解决方案--------------------
SET IDENTITY_INSERT company1 ON
insert into company1(列1,列2,...)
select * from company
SET IDENTITY_INSERT company1 OFF
要显性调用列名
------解决方案--------------------
參考這個例子
Create Table company1
(ID Int Identity(1, 1),
Name Varchar(10))
Create Table company
(ID Int Identity(1, 1),
Name Varchar(10))
Insert company Select 'A '
Union All Select 'B '
GO
SET IDENTITY_INSERT company1 ON
insert into company1(ID, Name) select ID, Name from company
SET IDENTITY_INSERT company1 OFF
Select * From company1
GO
Drop Table company1, company
--Result
/*
ID Name
1 A
2 B
*/
------解决方案--------------------
需要显示指定列名
------解决方案--------------------
我以前也犯过这个错误,还是游泳的鱼告诉我的!呵呵
------解决方案--------------------
你的company1的自增列到底是否需要從company中導入值?
如果不需要,直接
insert into company1(公司名称,行业2,行业1,省份,城市,区号,电话1,分机1,联系人,职务,性别,整理日期)
select 公司名称,行业2,行业1,省份,城市,区号,电话1,分机1,联系人,职务,性别,整理日期 from company
如果需要
SET IDENTITY_INSERT company1 ON
insert into company1(自增列名,公司名称,行业2,行业1,省份,城市,区号,电话1,分机1,联系人,职务,性别,整理日期)
select 自增列名,公司名称,行业2,行业1,省份,城市,区号,电话1,分机1,联系人,职务,性别,整理日期 from company
SET IDENTITY_INSERT company1 OFF