我是用企业管理器直接建的一个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]语句已终止。
为什么呢?

解决方案 »

  1.   

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

  2.   

    当你改变表设计时,若原来表中有空的现在设计为不允许空,出现上述现象;
    当你原来设计为不允许空时,现在插入空数据,也会出现上述现象,
    因为空是什么都没有,不能转换为日期数据
    第一种情况,你要将null值替换 update Uselist set RegTime='2007-04-21' where RegTime is null 后再改设计
    第二种情况,可以将表设计为允许空,再插入就不会报错了。
      

  3.   

    已经有空值了,只能给空值付个值update tablename set RegTime=getdate() where regtime is null
      

  4.   

    这不要触发器吧?
    你定义它不能为空,那么肯定插入不了NULL值,定义可以为空了,就可以插入null了,要么定义为不能为空,默认值''
      

  5.   

    null 值代表的意思是不缺定,可能为空等多种情况,你在定义表的时候最好设定默认值
    例如:getDate() ,不就行了
      

  6.   

    给你介绍一本非常好的书,源代码我这里有!
    《SQL server 2000管理及应用系统开发》