在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管理及应用系统开发》