• SQl查询数据库表名、表的列名


    SQl查询数据库表名、表的列名

    --读取库中的所有表名

    select name from sysobjects where xtype='u'

    --读取指定表的所有列名

    select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')

    获取数据库表名和字段

    sqlserver中各个系统表的作用

    sysaltfiles 主数据库 保存数据库的文件

    syscharsets 主数据库 字符集与排序顺序

    sysconfigures 主数据库 配置选项

    syscurconfigs 主数据库 当前配置选项

    sysdatabases 主数据库 服务器中的数据库

    syslanguages 主数据库 语言

    syslogins 主数据库 登陆帐号信息

    sysoledbusers 主数据库 链接服务器登陆信息

    sysprocesses 主数据库 进程

    sysremotelogins主数据库 远程登录帐号

    syscolumns 每个数据库 列

    sysconstrains 每个数据库 限制

    sysfilegroups 每个数据库 文件组

    sysfiles 每个数据库 文件

    sysforeignkeys 每个数据库 外部关键字

    sysindexs 每个数据库 索引

    sysmenbers 每个数据库 角色成员

    sysobjects 每个数据库 所有数据库对象

    syspermissions 每个数据库 权限

    systypes 每个数据库 用户定义数据类型

    sysusers 每个数据库 用户

    //

    用什么方法可以得到一个表中所有的列名。SQl语句。

    select 列名=name from syscolumns where id=object_id(N'要查的表名')

    use gpStrudy

    select name="name" from syscolumns where id=object_id(N'bookTable')

    获得字段的属性

    //这是从一段代码中考出来的,使用的是using System.Data.OleDb;

    public int GetTableFields(String tableName,out String[] fields,out String[] fieldTypes)

    ...{

    try

    ...{

    OleDbCommand dc = m_OleDb.CreateCommand();//创建一个执行对象用于执行sql查询

    dc.CommandText = "select * from " + tableName;

    dc.Transaction = m_OleTrans;

    OleDbDataReader dr = dc.ExecuteReader();//执行sql查询

    //获取数据库的架构信息

    DataTable schemaTable = dr.GetSchemaTable();

    int fieldColumnCount = 0;

    fields = new String[schemaTable.Rows.Count];

    fieldTypes = new String[schemaTable.Rows.Count];

    for(int i = 0;i < schemaTable.Columns.Count;i++)

    ...{

    if(schemaTable.Columns[i].ColumnName.IndexOf("ColumnName") >= 0)

    ...{

    //获取字段名称

    for(int k = 0;k < schemaTable.Rows.Count;k++)

    fields[k] = schemaTable.Rows[k].ItemArray[i].ToString();

    fieldColumnCount++;

    if(fieldColumnCount >= 2)

    ...{

    dr.Close();

    dc.Dispose();

    dr = null;

    dc = null;

    return schemaTable.Rows.Count;

    }

    }

    else if(schemaTable.Columns[i].ColumnName.IndexOf("DataType") >= 0)

    ...{

    //获取字段类型

    for(int k = 0;k < schemaTable.Rows.Count;k++)

    fieldTypes[k] = schemaTable.Rows[k].ItemArray[i].ToString();

    fieldColumnCount++;

    if(fieldColumnCount >= 2)

    ...{

    dr.Close();

    dc.Dispose();

    dr = null;

    dc = null;

    return schemaTable.Rows.Count;

    }

    }

    }

    dr.Close();

    dc.Dispose();

    dr = null;

    dc = null;

    return 0;

    }

    catch(Exception ee)

    ...{

    fields = new String[1];

    fieldTypes = new String[1];

    m_ErrorString = "Ado_Application:GetTableFields:error:" + ee.Message;

    return 0;

    }

    }

  • 相关阅读:
    【NOIP2001】【Luogu1025】数的划分(可行性剪枝,上下界剪枝)
    【POJ2676】Sudoku(优化搜索顺序)
    【codevs4228】小猫爬山(最优化剪枝)
    实现两个路由器漫游(传统路由器做AP)
    查询数据SELECT 之单表查询
    MySQL数据库基础概念
    删除Mac上的mysql数据库
    MYSQL数据库
    并发编程
    socketserver及相关的类 (处理socket服务端)+ event事件的使用
  • 原文地址:https://www.cnblogs.com/dajiang02/p/1804138.html
Copyright © 2020-2023  润新知