这样写出错
ALTER TABLE [dbo].[aaa] ADD bbb SMALLINT NOT NULL
谢谢了
8 个解决方案
#1
没问题啊,报什么错?
#2
下面的代码没有报错:
if OBJECT_ID('aaa') is not null
drop table aaa
go
create table aaa(v1 int,v2 int)
--没有报错
ALTER TABLE [dbo].[aaa] ADD bbb SMALLINT NOT NULL
#3
我这边提示,只能加允许NULL或者有默认值的列,
是不是我这个表里已经有数据了呀,
如果没有数据也许可以改
是不是我这个表里已经有数据了呀,
如果没有数据也许可以改
#4
具体是报什么错误呢。
如果这一列已经存在,可以用这个代码:
如果这一列已经存在,可以用这个代码:
ALTER TABLE [dbo].[aaa]
alter column bbb SMALLINT NOT NULL
#5
有数据是不行的,要么你新建个表,把那个null的列也写上,然后把数据导过去,删除源表再重命名新表
#6
表里有数据的情况下
bbb是新加的,肯定没有值,然后没有默认值,所以只能为null了,但是你有不允许为null。这个让数据库情何以堪呢?
建议先添加列,允许null。然后update把对应列值填上后,再修改为不允许为null。
或者按楼上的方法,弄到一张新表里,然后把表名改回来。
bbb是新加的,肯定没有值,然后没有默认值,所以只能为null了,但是你有不允许为null。这个让数据库情何以堪呢?
建议先添加列,允许null。然后update把对应列值填上后,再修改为不允许为null。
或者按楼上的方法,弄到一张新表里,然后把表名改回来。
#7
哦,那你的问题就是,你的bbb列已经存在了,这样确实没办法修改为not null,因为这个列中存在null值。
这个也简单,关键是你如何处理这种NULL值,我觉得可以先把这些null 替换为空串,也就是''
然后再用这个语句,设置为not null:
ALTER TABLE [dbo].[aaa]
alter column bbb SMALLINT NOT NULL
#8
你要分步加
第一步加一列没有任何约束的列
第二步给这列赋值
第三步给这列加非空约束
第一步加一列没有任何约束的列
第二步给这列赋值
第三步给这列加非空约束
#1
没问题啊,报什么错?
#2
下面的代码没有报错:
if OBJECT_ID('aaa') is not null
drop table aaa
go
create table aaa(v1 int,v2 int)
--没有报错
ALTER TABLE [dbo].[aaa] ADD bbb SMALLINT NOT NULL
#3
我这边提示,只能加允许NULL或者有默认值的列,
是不是我这个表里已经有数据了呀,
如果没有数据也许可以改
是不是我这个表里已经有数据了呀,
如果没有数据也许可以改
#4
具体是报什么错误呢。
如果这一列已经存在,可以用这个代码:
如果这一列已经存在,可以用这个代码:
ALTER TABLE [dbo].[aaa]
alter column bbb SMALLINT NOT NULL
#5
有数据是不行的,要么你新建个表,把那个null的列也写上,然后把数据导过去,删除源表再重命名新表
#6
表里有数据的情况下
bbb是新加的,肯定没有值,然后没有默认值,所以只能为null了,但是你有不允许为null。这个让数据库情何以堪呢?
建议先添加列,允许null。然后update把对应列值填上后,再修改为不允许为null。
或者按楼上的方法,弄到一张新表里,然后把表名改回来。
bbb是新加的,肯定没有值,然后没有默认值,所以只能为null了,但是你有不允许为null。这个让数据库情何以堪呢?
建议先添加列,允许null。然后update把对应列值填上后,再修改为不允许为null。
或者按楼上的方法,弄到一张新表里,然后把表名改回来。
#7
哦,那你的问题就是,你的bbb列已经存在了,这样确实没办法修改为not null,因为这个列中存在null值。
这个也简单,关键是你如何处理这种NULL值,我觉得可以先把这些null 替换为空串,也就是''
然后再用这个语句,设置为not null:
ALTER TABLE [dbo].[aaa]
alter column bbb SMALLINT NOT NULL
#8
你要分步加
第一步加一列没有任何约束的列
第二步给这列赋值
第三步给这列加非空约束
第一步加一列没有任何约束的列
第二步给这列赋值
第三步给这列加非空约束