我给sql表加了一个新字段
exec('alter table ' + @name +'  add dwmc_xx char(30)')
新加的字段总是在表中的最后一列,怎么能让它排在前面啊,因为这个表有好多列,而这个列是单位名称,排在最左面方便,要代码实现

解决方案 »

  1.   

    如果想加在前面得使用临时表.exec('alter table ' + @name +'  add dwmc_xx char(30)') select dwmc_xx , 其他字段 into tmp from tbdrop table tbselect * into tb from tmpdrop table tmp
      

  2.   

    一般没有必要 你查询的时候把他放前边去就可以了 在2005中不行在2000中 修改 syscolumns 系统表的 colid 字段的值
      

  3.   

    create table ta (id int,col int)
    goselect * from ta
    go
    SP_CONFIGURE 'ALLOW UPDATES',1 
    GORECONFIGURE WITH OVERRIDE
    GOupdate syscolumns set colid = colid +1 , xoffset = xoffset +4 where object_id('ta') = idupdate syscolumns set colid = 1 ,xoffset = 4 where object_id('ta') = id and name = 'col'
    go
    select * from ta 
    drop table ta
    /*
    id          col         
    ----------- ----------- (所影响的行数为 0 行)DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'allow updates' 从 1 改为 1。请运行 RECONFIGURE 语句以安装。(所影响的行数为 2 行)
    (所影响的行数为 1 行)col         id          
    ----------- ----------- (所影响的行数为 0 行)*/