SQLSERVER 系統表查詢


查詢數據庫

select * From master.dbo.sysdatabases where name='數據庫名' and status<>512

--讀取庫中的所有表名 (當前數據庫)
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; 
    } 
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM