alter table 表A alter column mycode char(20)

解决方案 »

  1.   

    alter table  trans  alter column  batch char(20)出错:
    服务器: 消息 5074,级别 16,状态 8,行 1
    对象 'PK_trans' 依赖于 列 'batch'。
    服务器: 消息 4922,级别 16,状态 1,行 1
    ALTER TABLE ALTER COLUMN batch 失败,因为有一个或多个对象访问此列。因为,它是主索引,有什么办法?????只有删掉主索引,再建立主索引,问SQL语句怎么写????
      

  2.   

    我想是你的字段mycode 是与其它表的关联字段吧,那样要把关联的表一起改才行啊.先删除关联约束
      

  3.   

    ok了, 可以了, 谢谢:
    alter table  trans   drop 
    CONSTRAINT [PK_trans]
    go
    alter table  trans  alter column  batch char(20) not null
    go
    alter table  trans  WITH NOCHECK ADD 
    CONSTRAINT [PK_trans] PRIMARY KEY  CLUSTERED 
    (
    [shopf],
    [shopt],
    [ddate],
    [batch]
    )  ON [PRIMARY] 
    /*
    alter table 表A alter column mycode char(20)
    [shopcode] [nvarchar] (2)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 ] } */