表A,里面已经存在数据,现在需要add one coloumn as not nullALTER TABLE db_name.dbo.A ADD Flag tinyint not null; 报错,说是没有default的设置, 后来改成先ALTER TABLE db_name.dbo.A ADD Flag tinyint null; 成功了,然后update db_name.dbo.A set Flag = 1; 再ALTER TABLE db_name.dbo.A ALTER COLUMN Flag set not null; 还是报错Incorrect syntax near the keyword 'set'.请教高手

解决方案 »

  1.   

    ALTER TABLE db_name.dbo.A ALTER COLUMN Flag tinyint not null; 
      

  2.   

    --这样?
    ALTER TABLE db_name.dbo.A ALTER COLUMN Flag set Flag is not null
      

  3.   

    --为某字段加入默认值 
    ALTER TABLE TB ADD CONSTRAINT DF_TB_Col DEFAULT (0) FOR Col 
      

  4.   

    SORRY 错误了 ALTER TABLE db_name.dbo.A ALTER COLUMN Flag (数据类型) not null
      

  5.   

    ALTER TABLE db_name.dbo.A ALTER COLUMN Flag --(这里是数据类型) not null
      

  6.   

    ALTER TABLE db_name.dbo.A ADD Flag tinyint default(1) not null
      

  7.   

    ALTER TABLE MyTable ALTER COLUMN NullCOl NVARCHAR(20) NOT NULL 
       
      如果 ALTER COLUMN 中指定了 NULL 或 NOT NULL,那么必须同时指定 new_data_type [(precision [, scale ])]。如果不更改数据类型、精度和小数位数,请指定列的这些值的当前值。
      

  8.   


    ALTER TABLE db_name.dbo.A ADD Flag tinyint null; 成功了,然后 update db_name.dbo.A set Flag = 1; 再 ALTER TABLE db_name.dbo.A ALTER COLUMN Flag set not null;-----
    直接这样就行了。ALTER TABLE db_name.dbo.A ADD Flag tinyint default(1) not null
      

  9.   

    ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name 
    ALTER COLUMN  [ type_schema_name. ] type_name [ ( { precision [ , scale ] | max |xml_schema_collection } ) ] 
    [ NULL | NOT NULL ] ;
      

  10.   


    --not null和default要同时加ALTER TABLE db_name.dbo.A ADD Flag tinyint not null default(1);
      

  11.   

    ALTER TABLE db_name.dbo.A ALTER COLUMN Flag tinyint  not null
      

  12.   


    alter table db_name.dbo.A  drop column flag
    go
    --你如果是后来添加不为null字段,必须要设缺省值,不设的话,肯定会违反不为NULL的约束,所以会报错。
    ALTER TABLE db_name.dbo.A ADD Flag tinyint default(0) not null
      

  13.   

    ALTER TABLE db_name.dbo.A add Flag tinyint default(0)
      

  14.   

    hi
    6F,
    ALTER TABLE db_name.dbo.A ADD Flag tinyint default(1) not null
    这样还是报错
    Incorrect syntax near the keyword 'COLUMN'.
      

  15.   

    Sorry, it's my bad. resloved it. thanks all