ALTER TABLE table 
{ [ ALTER COLUMN column_name 
    { new_data_type [ ( precision [ , scale ] ) ] 
        [ COLLATE < collation_name > ] 
        [ NULL | NOT NULL ] 
        | {ADD | DROP } ROWGUIDCOL } 
    ] 
    | ADD 
        { [ < column_definition > ] 
        |  column_name AS computed_column_expression 
        } [ ,...n ] 
    | [ WITH CHECK | WITH NOCHECK ] ADD 
        { < table_constraint > } [ ,...n ] 
    | DROP 
        { [ CONSTRAINT ] constraint_name 
            | COLUMN column } [ ,...n ] 
    | { CHECK | NOCHECK } CONSTRAINT 
        { ALL | constraint_name [ ,...n ] } 
    | { ENABLE | DISABLE } TRIGGER 
        { ALL | trigger_name [ ,...n ] } 
}< column_definition > ::= 
    { column_name data_type } 
    [ [ DEFAULT constant_expression ] [ WITH VALUES ] 
    | [ IDENTITY [ (seed , increment ) [ NOT FOR REPLICATION ] ] ] 
        ] 
    [ ROWGUIDCOL ] 
    [ COLLATE < collation_name > ] 
    [ < column_constraint > ] [ ...n ] < column_definition > 只有在add的时候才能用,你知道了吗?

解决方案 »

  1.   

    这个我在sql server联机丛书里也看到了
    可是执行ALTER TABLE test alter column id int IDENTITY时报错
    要把id字段改为标识字段sql该怎么写呢
      

  2.   

    sql server 7中没有alter column的功能。
      

  3.   

    to smartdonkey(聪明的毛驴)怎么会
    用ALTER TABLE test alter column id int是可以的
      

  4.   

    你用的是ORACLE 还是SQL SERVER?
    要是ORACLE的话要用
    alter table test modify id int 
      

  5.   

    不过你哪个ID字段原来要是VACHAR行的话,是不可以改成INT行的,除非你ID里面全部存储的是数字
      

  6.   

    我用的是SQL SERVER 
    ID字段本来就是int型的
      

  7.   

    sql_server中alter 不能改變id的indentity
    不過
     ALTER TABLE test drop column id
     ALTER TABLE test add  id  int  IDENTITY not null
    效果是一樣的
      

  8.   

    to friends(朋友)
    其實haihong()一開始就給出答案了 
    "< column_definition > 只有在add的时候才能用,你知道了吗?"
      

  9.   

    IDENTITY只能在如下情况下建立:
    在创建表时创建新的IDENTITY列
    在现有表中创建新的IDENTITY列
      

  10.   

    我懂了,谢谢大家
    表中已经有数据了,要把id字段转换成标识字段看来只能在企业管理器里改
    或新建一个字段把id字段的数据到过去,然后用jasmine(Yaya)的方法了
      

  11.   

    如果把标识字段改成一般的id字段,
    用sql能实现吗?