alter语句是无法更改字段名的。

解决方案 »

  1.   

    最好的办法当然还是直接在数据库中更改,如果一定要用代码修改,可以在vb 中依次执行下面的SQL语句:
    select A as B, ... into table2 from table1
    drop table table1
    select * into table1 from table2
    drop table table2
    当然这样写是比较麻烦,而且有一个最大的问题是如果原表中有主键的话,这样一转,主键会丢失。所以还要执行一条添加主键的SQL语句。我也不知道有没有别的更好的办法,关键是在最初设计数据库的时候应该考虑周全。
      

  2.   


    create table table_name(字段名)
    as select * from 要改列名的表;
      

  3.   

    如果用的是DAO,用tabledef对象:
    Dim db As Database, tb As TableDef
    Set db = DBEngine.OpenDatabase("yourDB.mdb")
    Set tb = db.TableDefs("oldname")
    tb.Name = "newname"
    tb.Close
    db.Close
    Set tb = Nothing
    Set db = Nothing
      

  4.   

    如果是SQL服务器,在master的存储过程里有一个sp_rename的过程,可以使用
    exec sp_rename  '数据库名.dbo.表名.[字段名]','新名'
    在查询分析器里试过,应该用 conn.Execute 可以执行(没试)
      

  5.   

    呵呵,看错了,以为是该表名。对不起:
    Dim db As Database, tb As TableDef, fld As Field
    Set db = DBEngine.OpenDatabase("yourDB.mdb")
    Set tb = db.TableDefs("yourTable")
    Set fld = tb.Fields("oldFieldname")
    fld.Name = "newFieldname"
    db.Close
    Set tb = Nothing
    Set db = Nothing