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  也不行,特请大家帮我解决,
      

解决方案 »

  1.   

    alter table A alter column BB varchar(50) not null
    試下
      

  2.   

    alter table A alter COLUMN BB varchar(50) not null --少COLUMN 
      

  3.   

    alter table A  alter column BB varchar(50)  not null
    前提是表中不能有null的记录
      

  4.   

    alter table A 
    alter column BB varchar(50) not null
      

  5.   


    alter table A alter column BB varchar(50) not null 如果还不能修改,那么就是因为BB字段上有为NULL的值
    那就先给BB为NULL的行设置个值即可,然后执行上面语句
    Update A Set BB='某默认值' WHERE BB IS NULLSQL里也可以这样 
    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