1. 程式人生 > >SQL Server中Table字典資料的查詢SQL示例程式碼

SQL Server中Table字典資料的查詢SQL示例程式碼

SQL Server中Table字典資料的查詢SQL示例程式碼

前言

在資料庫系統原理與設計(第3版)教科書中這樣寫道:

資料庫包含4類資料:

1.使用者資料

2.元資料

3.索引

4.應用元資料

其中,元資料也叫資料字典,定義如下:

下面這篇文章就來給大家分享一個關於查詢SQL Server Table 結構的SQL 語句。

T-SQL 如下:

SELECT ( case when a.colorder=1 then d. name else '' end ) 表名, a.colorder 欄位序號,a. name 欄位名,
( case when a.colorder=1 then isnull (f.value, '' ) else '' end ) 表說明, ( case when COLUMNPROPERTY( a.id,a. name , 'IsIdentity' )=1 then '1' else '0' end )標識, ( case when ( SELECT count (*) FROM sysobjects WHERE ( name in ( SELECT
name FROM sysindexes WHERE (id = a.id) AND (indid in ( SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in ( SELECT colid FROM syscolumns WHERE (id = a.id) AND ( name = a. name ))))))) AND (xtype = 'PK' ))>0 then
'1' else '0' end ) 主鍵,b. name 型別,a.length 佔用位元組數, COLUMNPROPERTY(a.id,a. name , 'PRECISION' ) as 長度, isnull (COLUMNPROPERTY(a.id,a. name , 'Scale' ),0) as 小數位數,( case when a.isnullable=1 then '1' else '0' end ) 允許空, isnull (e.text, '' ) 預設值, isnull (g.[value], ' ' ) AS [說明] FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype= 'U' and d. name <> 'dtproperties' left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 --where b.name is not null WHERE d. name = 'DBA_Server' --如果只查詢指定表,加上此條件,此案例為表DBA_Server order by a.id,a.colorder   查詢出的結果如下: