日期:2014-05-19  浏览次数:20367 次

在sql2000里建了个表,但是出问题了大家帮我看下
我是用企业管理器直接建的一个mydata库。
库里有张表Uselist表
表里有三个字段,UserName,PassWord,RegTime三个字段
当我定义RegTime为空时sql2000总是报错
Userlist '   表
-   不能修改表。    
ODBC   错误:   [Microsoft][ODBC   SQL   Server   Driver][SQL   Server]无法将   NULL   值插入列   'RegTime ',表   'Mydata.dbo.Tmp_Userlist ';该列不允许空值。INSERT   失败。
[Microsoft][ODBC   SQL   Server   Driver][SQL   Server]语句已终止。
为什么呢?

------解决方案--------------------
提示说的很清楚了,你可以先执行
update tablename set RegTime=getdate()
然后再定义RegTime为空


------解决方案--------------------
当你改变表设计时,若原来表中有空的现在设计为不允许空,出现上述现象;
当你原来设计为不允许空时,现在插入空数据,也会出现上述现象,
因为空是什么都没有,不能转换为日期数据
第一种情况,你要将null值替换 update Uselist set RegTime= '2007-04-21 ' where RegTime is null 后再改设计
第二种情况,可以将表设计为允许空,再插入就不会报错了。
------解决方案--------------------
已经有空值了,只能给空值付个值update tablename set RegTime=getdate() where regtime is null
------解决方案--------------------
用一个触发器
------解决方案--------------------
欢迎大家加入数据库技术群32097372
------解决方案--------------------
这不要触发器吧?
你定义它不能为空,那么肯定插入不了NULL值,定义可以为空了,就可以插入null了,要么定义为不能为空,默认值 ' '
------解决方案--------------------
null 值代表的意思是不缺定,可能为空等多种情况,你在定义表的时候最好设定默认值
例如:getDate() ,不就行了
------解决方案--------------------
给你介绍一本非常好的书,源代码我这里有!
《SQL server 2000管理及应用系统开发》