剛剛在做一個小項目,資料庫中一張表有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的話字段說明是存在另一個張表裡的,表名忘記了,反正我不需要也懶得去查了...
特此記錄!!!