SQL Server沒有Oracle的DESC命令,在Orcale中,我們可以使用:DESC 表名; 來查詢表的結構,但SQL Server沒有提供這個命令,只有一個sp_help 表名;的存儲過程來查看表的所有信息。下面我們來通過SELECT語句查詢表的結構。
我們新建了一張表后,會將所有與表有關的信息寫入該數據庫下面的某張系統表, sysobjects,?syscolumns, systypes 是其中三張,我們要找的信息就在這三張表里面:
1、下面查詢所有表的結構注意,這里要加一個條件:SO.status?>=?0,否則會將系統的臨時表顯示出來?1?SELECT?????
?2?????SO.name?表名,
?3?????SC.name?表列名,
?4?????SC.colid?索引,
?5???? ST.name?類型
?6?FROM???????
?7?????sysobjects???SO,?--?對象表
?8?????syscolumns???SC,?--?列名表
?9???? systypes?????ST??--?數據類型表?
10?WHERE????????
11?????SO.id?=?SC.id?
12???AND???SO.xtype?=?'U'????--?類型U表示表,V表示視圖
13???AND???SO.status?>=?0
14???AND???SC.xtype?=?ST.xusertype
15?ORDER?BY??
16?????SO.name,?SC.colorder?????????--?按表名、列名排序
查詢結果:

2、下面查詢某張特定表的結構
?1?SELECT?????
?2?????SO.name?表名,
?3?????SC.name?表列名,
?4?????SC.colid?索引,
?5???? ST.name?類型
?6?FROM???????
?7?????sysobjects???SO,?--?對象表
?8?????syscolumns???SC,?--?列名表
?9???? systypes?????ST??--?數據類型表?
10?WHERE????????
11?????SO.id?=?SC.id?
12??? AND???SO.xtype?=?'U'???????????????????--?類型U表示表,V表示視圖
13??? AND???SO.status?>=?0???????????????? ?--?status?>=?0?為非系統對象
14??? AND???SC.xtype?=?ST.xusertype
15??? AND???SO.name?=?'T_Employee'??--?某張特定表
16?ORDER?BY??
17?????SO.name,?SC.colorder?????????--?按表名、列名排序
查詢結果:

3、如果要查看視圖信息,只需要將SO.xtype = 'U'該為SO.xtype = 'V' 即可!
posted on 2006-09-25 14:49
CoderDream 閱讀(3458)
評論(0) 編輯 收藏 所屬分類:
數據庫