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

我写了这样一个sql语句:ALTERTABLEaawwADDfield77intNOTNULL但是sql不让添加,到底应该怎样写呢?我还想问一个问题:怎样才能sql建一个... 我写了这样一个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.我想添加是不为空的字段,表已经有了。
展开
 我来答
windzero1
2007-09-04 · 超过21用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:69.4万
展开全部
创建表的时候:
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)
2hill
2007-08-31 · TA获得超过535个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:429万
展开全部
建表的话,不用这么麻烦吧,还用sql来建表;

推荐你是用Erwin,图形化数据库设计工具,可以自动生成表,修改也方便,设置索引,默认值都很很简单的,完全是图形化的,不用写一行代码;

当然,会写SQL,也是必要的,虽然工作中很少用到这些建表语句;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万年冰霜
2007-08-31 · TA获得超过5414个赞
知道大有可为答主
回答量:3273
采纳率:0%
帮助的人:2748万
展开全部
是什么SQL?

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

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

虽然不精通SQL,不过你的命令也写得太……不规范了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佳乐比海
2007-09-01 · TA获得超过165个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:0
展开全部
1.ALTER TABLE aaww ADD field77 int NULL(只去掉了null,SQL Server不能添加非空的字段,因为添进去了,如果这个表已有数据,这个字段又没赋值,则约束不完整)
2.alter table aaww
add constraint DF_field77 default(77) for field77(77为默认值)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小艾米干货
2007-08-31
知道答主
回答量:39
采纳率:0%
帮助的人:0
展开全部
ALTER TABLE aaww ADD field77 int NOT NULL
在SQL2000中应该可以添加啊
数据库是否对了`
建一个有默认值的字段:
atler constraint 约束名 default('值') for 字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式