sql 命令求解 sql语句中如何为新增列指定为NOT NULL

不允许指定为notnull有什么办法把该列设置为notnull不是主键向已有的表中添加一新列altertablexxadd新列int(notnull)括号中会报错入题但我... 不允许指定为not null 有什么办法把该列 设置为 not null
不是主键 向已有的表中添加一新列 alter table xx add 新列 int (not null) 括号中会报错 入题 但我需要非空 有什么办法
展开
 我来答
wangkejingc10
2008-09-20 · TA获得超过360个赞
知道小有建树答主
回答量:406
采纳率:0%
帮助的人:115万
展开全部
主键肯定不能为not null了- -
还有就是看看有没约束

ALTER TABLE 只允许添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,因为它不满足上述条件。

alter table xx add 添加列表要是空的

指定列是否可接受空值。如果列不允许空值,则只有在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。只有同时指定了 PERSISTED 时,才能为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,则可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。

如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。

在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值时,才可以在 ALTER COLUMN 中指定 NOT NULL。必须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如:

因为新建不能为空所以要先新建个可以为空的列
然后强制为空
下面代码以测试
alter table 表名 add 列名 nvarchar(20) null
go
UPDATE 表名 SET stuName = N'some_value' WHERE 列名 IS NULL

ALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULL
go
百度网友e425885af
2008-09-20 · TA获得超过7650个赞
知道大有可为答主
回答量:2940
采纳率:0%
帮助的人:2718万
展开全部
在建表的时候字段后面直接加上not null的判断,每个数据库语法都不一样。
sqlserver是
create table xxx (id int not null,desc varchar(100) not null)

oracle好像也一样,db2似乎也是
informix好像需要额外加非空判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式