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