sql语句如何在表中新建一列

sql语句如何在表中新建一列,第1张

主键肯定不能为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) nullgoUPDATE 表名 SET stuName = N'some_value' WHERE 列名 IS NULL

第一步,增加列:

alter table 表名 add 新列名 数据类型定义 default 默认初始值

第2步,更新表中已有的数据:

update 表名 set 新列名='默认初始值'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11712587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存