注册 登录
编程论坛 SQL Server论坛

[求助]修改数据库表时弹出的错误

yuexiayiyu 发布于 2007-01-30 12:57, 862 次点击
我以前建好了数据库的表。可我现在想修改一下。(把以前允许为空的值改成不能为空。可一改就弹出了下边的错误。)望各位DX帮忙解决下!!!
'bookinfo' 表
- 不能修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'author',表 'tsgl.dbo.Tmp_bookinfo';该列不允许空值。INSERT 失败。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
7 回复
#2
bygg2007-01-30 12:59
以下是引用yuexiayiyu在2007-1-30 12:57:42的发言:
我以前建好了数据库的表。可我现在想修改一下。(把以前允许为空的值改成不能为空。可一改就弹出了下边的错误。)望各位DX帮忙解决下!!!
'bookinfo' 表
- 不能修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'author',表 'tsgl.dbo.Tmp_bookinfo';该列不允许空值。INSERT 失败。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。

这就是原因啊.

#3
棉花糖ONE2007-01-30 13:01
提示都说了,你那个列不允许为空,你却插入空,肯定通不过啦
#4
Kendy1234562007-01-30 14:18

给列设一个缺省值; 把数据库中现在的NULL值先update成空字符串.

#5
yuexiayiyu2007-01-30 14:39

以前的那个是空值。可我现在要把空值改成不是空的,。它怎么会弹出这样的语句呢。这不是反了吗?

#6
yuexiayiyu2007-01-30 14:46
以下是引用Kendy123456在2007-1-30 14:18:36的发言:

给列设一个缺省值; 把数据库中现在的NULL值先update成空字符串.

这方法不错。不过我用了DELETE把数据都清了。可以了。!谢谢!

#7
ninggang2007-01-30 14:46
有可能是你原来数据库中的那张表里面有空值吧,在将表中的那一列由允许空改为非空,首先要检查里面数据是否合法
#8
yuexiayiyu2007-01-30 14:55
呵呵。就是的。我以为可以直接改呢。
1