同题,谢谢!

解决方案 »

  1.   

    sql中存储字段的系统表是syscolumns
    提取所有某表中所有字段的sql语句可以这样写:
    SELECT DISTINCT dbo.sysobjects.name AS TableName, dbo.syscolumns.colid, dbo.syscolumns.name AS Field, dbo.systypes.name AS FieldType FROM dbo.systypes INNER JOIN dbo.syscolumns ON dbo.systypes.xusertype = dbo.syscolumns.xusertype RIGHT OUTER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id LEFT OUTER JOIN dbo.sysproperties ON dbo.syscolumns.id = dbo.sysproperties.id AND dbo.sysproperties.smallid = dbo.syscolumns.colid WHERE (dbo.sysobjects.xtype = 'U') and sysobjects.name = "TableName");
      

  2.   

    给点明了点的代码吗, ajieboy(齐) 的代码看的不大懂得!
      

  3.   

    用在ACCESS结果提示语法错误,难道这个在SQL里可以而在ACCESS却不行?
    那在ACCESS里查询字段的语句又该如何写
      

  4.   

    ACCESS????Fill(ds)
    可以获得一个DataTable吧?
     
    for (....datatable.coloums.count)
    {
    datatable.coloums[i].coloumname
    }
      

  5.   

    alter table 你的表名  add 新的列名 varchar(10) NULL default 缺省值
      

  6.   

    在两列之间插入的话就得重新排列该表在syscolumns中的colid字段的顺序了。
    修改字段的名称修改syscolumns.name的值
      

  7.   

    的确是会重新排序的。
    你可以试一下,先执行一下上面给你的那个sql语句,看看某一个表中字段colid的值,然后手动在那个表里插入一个字段,再看colid的值的确是重新排序过的。
      

  8.   

    系统表一般是不允许修改的
    执行“sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE” 设置为允许修改系统表
    执行“sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE” 恢复为不允许修改具体写什么值就得你自己排了。
      

  9.   

    各位大哥,楼主用的是Access数据库,何来sp_configure 何来syscolumns啊?楼主如果希望改变ds字段顺序就alter table 增加字段。然后不用*,列举字段名就是啦。
      

  10.   

    不好意思,Access的代码不知道,给你说Sql Server的也只是给你个思路。具体操作还得根据你的情况了。要是觉得没有用那就算了。
      

  11.   

    有用的,ACCESS我只是想知道能不能这样做!我是打算使用SQL数据库的,针对SQL具体怎么更改colid?
      

  12.   

    哈哈,谢谢楼上!
    我是想直接在数据库里保存一张交叉表(二维表),考虑到数据量不大,所以想以交叉表的形式直接保存到数据库里。
    用户修改时通过dataset填充到datagrid里的表数据,修改后直接更新到数据库里,现在想知道的是如何修改字段名称,和在两个字段间差入新字段