我們新建了一張表后,會將所有與表有關的信息寫入該數據庫下面的某張系統表, 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?????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?????????--?按表名、列名排序
?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' 即可!