如题,我想用sql语句改变数据库中的字段顺序,请问这个怎么弄?这个问题提出的来由是,我在给表的标识列去标识后是通过添加新列然后将旧列的数据赋给新列,最后删除旧列再重名新列完成的,
效果如图
去标识前去标识后这样就出现标识列排在最后了,我想把它弄到顺序第一,请问这个该怎么弄?有没有不用加新列的办法,还请各位赐教!

解决方案 »

  1.   

    应该是没办法修改的!只有在使用的时候,用select将字段顺序列出即可select id,cname,ca from dtcr
      

  2.   

    这个无所谓的啊,什么都不会影响到你
    仅仅是个schema而已
      

  3.   

    重命名旧表
    新建一新表,定义你想要的顺序。
    从旧表导入数据
    删除旧表
    不要说笨,MS就是这样干的。2000有偏门的方法,update系统表syscolumns的colid,后果自负。
      

  4.   

    此法倒是可行,那能不能直接去标识列呢?就是不添加新列,像鼠标操作那样的你说的update syscolumns的colid,我现在出错,代码如下
    exec sp_configure 'Allow Updates',1
    go
    reconfigure with override
    go
    update syscolumns
    set colid=(case colid when 1 then 2 when 2 then 1 else colid end)
    where id=object_id('dtchange')
    exec sp_configure 'Allow Updates',0
    go
    reconfigure with override
    提示“不允许对系统目录进行即席更新”
    请问这是怎么回事呢?
      

  5.   


    用 SET IDENTITY_INSERT不要想#5的偏门了
      

  6.   


    我依稀记得2000中这个选项要重启SQL才能生效,不能即时override。