sql 脚本如何添加not null 列? alter table t_aa add bb tinyint not null 报错 表中没记录:alter table t_aa add bb tinyint not null会报错。有方法吗?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 alter table t_aa add bb tinyint not null default 0 说明:在alter表时,列如果设置为not null,需要指定默认值。因为在表如果有记录,如下:tbid name1 aa2 bb此时增加列bbid name bb1 aa2 bb在加列时,设置bb为not null,那么此时不指定默认值, sql并不知道给bb列插什么值。 表中有没有记录都没有关系,出错信息应该写很清楚了如果要添加一列NOT NULL的,必须指定一个Default值 --给个默认值.alter table 表 add bb tinyint not null default 0 我想你误解我的意思了。我没有说表中有记录SQL才报错。而是说SQL报错的原因是考滤到这种情况,所在不管有没有记录,在alter时设置not null列不指定default value就报错。 他才不会去检测你表是否有记录。 错误信息:服务器: 消息 4901,级别 16,状态 1,行 1ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'bb' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 't_aa' 中。不论表中是否有数据,如果要添加一列NOT NULL的,必须指定一个Default值。alter table t_aa add bb tinyint not null default 0--或者,如果不想设置默认值,可以:对于表中无记录时,可以拆分成两条SQL:alter table t_aa add bb tinyintgoalter table t_aa alter column bb tinyint not nullgo对于表中有记录时,可以拆分成三条SQL:alter table t_aa add bb tinyintgoupdate t_aa set bb=0 --更新bb的值alter table t_aa alter column bb tinyint not nullgo 从查询分析器怎么查看数据库的表结构 求一个SQL语句。。 SQLSERVER2005创建数据库关系图出错 sql2000 迁移问题 sql2000服务管理器一段时间自动停止?求解决方法 DTS/SSIS中数据传输问题 急!SQL SERVER 2005 导入导出数据时报错! 有没有办法用一句SQL完成这个功能?? SQL server数据库用网页形式远程维护时,数据填入提交后最近为什么老出现问题,无法打开网页? sql server2000的导入,导出 弱弱的问一句:什么是trigger? 数据库乱码问题,解决马上放分,在线等!
id name
1 aa
2 bb
此时增加列bb
id name bb
1 aa
2 bb
在加列时,设置bb为not null,那么此时不指定默认值, sql并不知道给bb列插什么值。
alter table 表 add bb tinyint not null default 0
我没有说表中有记录SQL才报错。
而是说SQL报错的原因是考滤到这种情况,所在不管有没有记录,在alter时设置not null列不指定default value就报错。 他才不会去检测你表是否有记录。
服务器: 消息 4901,级别 16,状态 1,行 1
ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'bb' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 't_aa' 中。
不论表中是否有数据,如果要添加一列NOT NULL的,必须指定一个Default值。alter table t_aa add bb tinyint not null default 0--或者,如果不想设置默认值,可以:对于表中无记录时,可以拆分成两条SQL:alter table t_aa add bb tinyint
go
alter table t_aa alter column bb tinyint not null
go对于表中有记录时,可以拆分成三条SQL:alter table t_aa add bb tinyint
goupdate t_aa set bb=0 --更新bb的值alter table t_aa alter column bb tinyint not null
go