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

有自动编号字段的表导入数据时为什会报该字段不能为空值?解决方案

2012-03-07 
有自动编号字段的表导入数据时为什会报该字段不能为空值?表结构ID(int)字段1(varchar)字段2(varchar)数据

有自动编号字段的表导入数据时为什会报该字段不能为空值?
表结构
ID(int)     字段1(varchar)       字段2(varchar)


数据是电子表格共2列,导入时报ID该字段不能为空值,若在电子表格中增加ID列并填上相应数字则能导入数据,不知何故?ID字段数据类型:int,标识:是,标识种子:1,标识递增量:1。

[解决办法]
叫你一个笨方法 你先把id列删除 然后把数据导进去 再在表中添加id列 就可以了

[解决办法]
用代码导入吧.手工写各个列,别导自增的那个列,那个列就会自动补值了.

当然,最好你先把电子表格的二列导进来.存成一个表,
然后再写代码导这个表

[解决办法]
SET IDENTITY_INSERT ON

insert语句....

SET IDENTITY_INSERT OFF

参考:http://hi.baidu.com/ruicao/blog/item/35c7b7186c06430734fa4175.html



[解决办法]
自动增长的ID是不能进行强行插入的
[解决办法]
use 数据库名称
SET IDENTITY_INSERT 数据库名称.dbo.表名 ON
GO
insert 数据库名称.dbo.表名(
master_id,master_caseId,master_site
)
select
master_id,master_caseId,master_site
from 另一个数据库.dbo.表名
GO
SET IDENTITY_INSERT 数据库名称.dbo.表名 off
GO

--说明 master_id 是自增长列
[解决办法]
insert 数据库名称.dbo.表名(
master_id,master_caseId,master_site
)
select
master_id,master_caseId,master_site
from 另一个数据库.dbo.表名
---------------
master_id是自增列的话,这样改了一下,你看行不行
insert 数据库名称.dbo.表名(
master_caseId,master_site
)
select
master_caseId,master_site
from 另一个数据库.dbo.表名
也就是说,不插入那个自增列,我以前就是这样用的呀.
[解决办法]
insert tb(col.....)
select col....
from tb2 where ....

热点排行