SQL Server沒有Oracle的DESC命令,在Orcale中,我們可以使用:DESC 表名; 來查詢表的結(jié)構(gòu),但SQL Server沒有提供這個命令,只有一個sp_help 表名;的存儲過程來查看表的所有信息。下面我們來通過SELECT語句查詢表的結(jié)構(gòu)。
我們新建了一張表后,會將所有與表有關(guān)的信息寫入該數(shù)據(jù)庫下面的某張系統(tǒng)表, sysobjects,?syscolumns, systypes 是其中三張,我們要找的信息就在這三張表里面:
1、下面查詢所有表的結(jié)構(gòu)注意,這里要加一個條件:SO.status?>=?0,否則會將系統(tǒng)的臨時表顯示出來?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??--?數(shù)據(jù)類型表?
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?????????--?按表名、列名排序
查詢結(jié)果:

2、下面查詢某張?zhí)囟ū淼慕Y(jié)構(gòu)
?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??--?數(shù)據(jù)類型表?
10?WHERE????????
11?????SO.id?=?SC.id?
12??? AND???SO.xtype?=?'U'???????????????????--?類型U表示表,V表示視圖
13??? AND???SO.status?>=?0???????????????? ?--?status?>=?0?為非系統(tǒng)對象
14??? AND???SC.xtype?=?ST.xusertype
15??? AND???SO.name?=?'T_Employee'??--?某張?zhí)囟ū?/span>
16?ORDER?BY??
17?????SO.name,?SC.colorder?????????--?按表名、列名排序
查詢結(jié)果:

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