比如用如下语句向表 TABLE1 新增列 COLUMN1ALTER TABLE TABLE1 ADD COLUMN1 int NOT NULL新增的列是排在所有列中的最后面的,现在的问题是,用SQL语句能不能像在“企业管理器”中一样,可以根据实际情况将列插入到某列的前面或后面。希望高人可以指点一下,十分感谢!

解决方案 »

  1.   


    --来由
    /* 
    现有一张表TEST(A,B,C)
    怎样在A和B列之间插入新列D希望结果:TEST(A,D,B,C)vivianfdlpw 2005.9 引用请保留此信息*/--创建测试环境
    create table TEST
    (
    A varchar(20),
    B varchar(20),
    C varchar(20)
    )
    go--允许系统标更新
    exec sp_configure 'allow updates','1'
    go
    reconfigure with override
    go--添加D列
    alter table test add D varchar(10)--更新B,C列顺序
    update syscolumns 
    set colid=colid+1
    where colid>=2 and id=object_id('test')--更新D列顺序
    update syscolumns 
    set colid=2
    where name='D' and id=object_id('test')--禁用系统标更新
    exec sp_configure 'allow updates','0'
    go
    reconfigure with override
    go
      

  2.   

    先加入字段,然后参考如下:--更改表字段顺序
    create table t1(C int,A int,B int)
    sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE update syscolumnsset colid=(select count() from syscolumns a where a.name=syscolumns.name and a.id=syscolumns.id)where id=object_id('t1')sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE select from t1
      

  3.   

    1、语句实现alter table table1 add column1 int not null
    2、可以的 点开某个数据库—选中你要修改表—右键修改—列名、数据类型、允许空—增加一个列名、
    填写数据类型、是否允许为空值。
      

  4.   


    不是用“企业管理器”,而是直接用SQL语句。
      

  5.   


    不是用“企业管理器”,而是直接用SQL语句。
      

  6.   

    回答11楼和12楼的问题:其实不更改列的顺序并不会对程序有什么影响,只是我在本机上设计表时,是在“企业管理器”上进行的,按一定的顺序插入列,而将所作的更改更新到服务器上时,则用SQL语句,所以我想保持服务器与本机上列顺序的一致,仅此而已。