SQL語句查詢表結構

進擊的辣條發表於2017-06-28

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的話欄位說明是存在另一個張表裡的,表名忘記了,反正我不需要也懶得去查了...
特此記錄!!! 

相關文章