首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一条SQL语句()

2012-02-21 
求助:一条SQL语句(在线等)向一个表中导入另一个表中的数据,两个表差别:其中目的表要求自动编号。用SETIDENT

求助:一条SQL语句(在线等)
向一个表中导入另一个表中的数据,两个表差别:其中目的表要求自动编号。

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
/*
IDName
1A
2B

*/
[解决办法]
需要显示指定列名
[解决办法]
我以前也犯过这个错误,还是游泳的鱼告诉我的!呵呵
[解决办法]
你的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

热点排行