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

sql2005表设置主键提示null无法插入

sql2005表数据是导入EXCEL
主键类型 float
在设置主键不能将值 NULL 插入列,列不允许有空值。INSERT 失败。


------解决方案--------------------
是的,因为主键是不允许存入null值的,而且也不允许存入 重复的值
------解决方案--------------------
是的,主键不允许存储NULL值。
------解决方案--------------------
引用:
关键是本来就没有数据呀


你的插入语句呢?
------解决方案--------------------
主键是全表的唯一性标志,不能重复,也不能有null值。
------解决方案--------------------
如果主键列只有1个null,可以插入,但是如果很多NULL,本身就违反了主键的规定,可能需要修改原数据(比如加默认值)或者修改主键定义,比如复合主键
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

关键是本来就没有数据呀


你的插入语句呢?


select * into 表 from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) 


你先用这个语句查询一下,看有没有null值:
select *  from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

------解决方案--------------------
应该是excel中有NULL值,之后再库里处理一下就好了~
------解决方案--------------------
先去掉主键约束;  再全部导入数据;  再清洗NULL数据;  再添加主键约束