日期:2014-05-17  浏览次数:20480 次

给一个表加一列需要not null
我现在想给一个表加一列,但是这个列不能为null,而且给这个列设上默认值‘’

ALTER TABLE [dbo].[aaa] ADD bbb NVARCHAR(3) NOT NULL
GO
ALTER TABLE [dbo].[aaa] ADD  CONSTRAINT [DF_aaa_bbb]  DEFAULT ('') FOR [bbb]
GO

但是一执行,出现错误,说加一列的话不能设置成not null

我可以把这两句写成一句吗
谢谢了

------解决方案--------------------

alter table aaa add bbb nvarchar(3) not null constraint DF_aaa_bbb default('')

------解决方案--------------------
原来数据表已经有数据了,你直接那样加上不行的。

ALTER TABLE [dbo].[aaa] ADD bbb NVARCHAR(3)
GO

UPDATE [aaa] SET bbb=''
GO

ALTER TABLE [dbo].[aaa] alter column bbb NVARCHAR(3) NOT NULL
GO

ALTER TABLE [dbo].[aaa] ADD  CONSTRAINT [DF_aaa_bbb]  DEFAULT ('') FOR [bbb]
GO