SQL SEREVER 有一表 A 里有字段 AA,BB 其中BB的为varchar(50)NULL 表中有记录,且BB的值为“0”
现在想把BB的改为varchar(50) not null
我用 alter table A alter BB varchar(50) not null 不行,
用 alter table A modify BB varchar(50) not null 也不行,
特请大家帮我解决,
...全文
27086打赏收藏
修改表字段的属性
SQL SEREVER 有一表 A 里有字段 AA,BB 其中BB的为varchar(50)NULL 表中有记录,且BB的值为“0” 现在想把BB的改为varchar(50) not null 我用 alter table A alter BB varchar(50) not null 不行, 用 alter table A modify BB varchar(50) not null 也不行, 特请大家帮我解决,
alter table A alter column BB varchar(50) not null
如果还不能修改,那么就是因为BB字段上有为NULL的值
那就先给BB为NULL的行设置个值即可,然后执行上面语句
Update A Set BB='某默认值' WHERE BB IS NULL
SQL里也可以这样
alter table A Add column BB1 varchar(50) not null default '某默认值'
go
Update A Set BB1=BB Where BB Is Not Null
go
ALTER TABLE A DROP COLUMN BB
go
EXEC sp_rename 'A.BB1', 'BB','column'
go