天天看點

用SQL語句來查詢表結構!

剛剛在做一個小項目,資料庫中一張表有20來個字段,用我以前做的一個.NET實體類生成器一個一個的輸入還是閑麻煩,于是打算找個時間來重新的改造一個那個.NET實體類,能夠通過選擇的資料庫及使用者表自動生成實體類,而且該實體類還有注釋,即字段的說明字段,然後再加一個功能,生成資料庫文檔,其實也就是把字段字,類型,字段說明輸出一個漂亮的表格而已,隻要能擷取出來生成HTML表格就比較容易了,上網找了一下,得到如下有用的SQL語句:

-- 查詢非系統資料庫

Select name FROM Master.. SysDatabases where dbid>4

-- 選擇water資料庫下的所有表

use [water] SELECT name FROM sysobjects WHERE xtype = 'U' Or xtype = 'S'

-- 選擇water資料庫下的所有使用者表

use [water] SELECT name FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0

-- 查詢water資料庫下的admin表的字段名,長度,類型,字段說明

use [water] SELECT a.[name] as '字段名',a.length '長度',c.[name] '類型',e.value as '字段說明' FROM syscolumns  a 

left   join    systypes    b   on      a.xusertype=b.xusertype 

left     join     systypes     c     on      a.xtype = c.xusertype 

inner   join   sysobjects  d   on      a.id=d.id     and   d.xtype='U' 

left join sys.extended_properties e on a.id = e.major_id and a.colid = e.minor_id and e.name='MS_Description'

where d.name='admin' 

其中sys.extended_properties系統内置視圖用于存儲字段說明,且隻有在MSSQL2005以上才有這張表的,且前面的sys.不能去掉,SQL2000的話字段說明是存在另一個張表裡的,表名忘記了,反正我不需要也懶得去查了...

特此記錄!!!