怎样用sql新建一个不为空的字段

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:26:16
我写了这样一个sql语句:
ALTER TABLE aaww ADD field77 int NOT NULL
但是sql不让添加,到底应该怎样写呢?
我还想问一个问题:
怎样才能sql建一个有默认值的字段呢?
问题补充:
1.如果付了默认值的sql语句,执行的时候是正确的ALTER TABLE aaww ADD field77 int NOT NULL
default 1 with values ,
如果不付默认值,只执行ALTER TABLE aaww ADD field77 int NOT NULL 就会报错。

2.报错说明:ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'field77' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 'aaww' 中。
3.数据库是SqlServer2000
4.如果能用sql的企业管理器或查询分析器来建表,我也用不着写sql语句了。
4.大家的方法我都试验过了,不行啊。
5.我想添加是不为空的字段,表已经有了。

创建表的时候:
create table table_name
(
id serial, // ---自增,item---
username char(20) not null, //---非空---
nation char(20) default 'China' //---默认值---
)

修改表的时候:

添加:
alter table table_name add(column_name char(120) default '默认值')

修改:
alter table table_name modify(old_name char(120) default '默认值')

我用的是informix数据库,不过整体上是相同的。你可以尝试一下,或者告诉我你用的是什麽数据库,我再帮你解决。

----------------------正义的分割线----------------------

发现你的问题了,你在修改表结构的时候,要求这个栏位不为空,可是你并没有给表的这个栏位赋值,这个效果就貌似"又要马儿跑,又不给草吃"。其实你只要一开始就给这个栏位赋一个默认值就可以了,如果这个栏位的值为空了,数据库就会给这个栏位赋值为默认值,不会出现真正的为空情况。

你尝试下下面的语句:
alter table [table名] add/modify columnname datatype default(defaultvalue)

是什么SQL?

如果是MYSQL的话,不能用INT,要用NUMBER

还有报错报的什么。自己看下报错就知道了

虽然不精通SQL,不过你的命令也写得太……不规范了。

1.ALTER TABLE aaww ADD field77 int NULL(只去掉了null,SQL Server不能添加非空的字段,因为添进