iT邦幫忙

DAY 11
4

MS SQL Server新特性探險:探險代碼 Denali系列 第 11

[Denali 新特性探險11]Metadata Discovery

這篇介紹 Metadata Discovery
以前當我想要知道某個 Table 相關欄位資訊(Metadata),
如Length、定序、is nullable、小數位…等,
我可能會透過 sys.tables join sys.all_columns或 sp_help 來取得我想要的欄位資訊,
或許你可能會覺得奇怪,為什麼不在 SSMS 針對該資料表展開資料行節點就好呢?
當然,如果資料表欄位數量很少是可以怎麼做的,
但如果一個資料表欄位數量高達200個以上
(不誇張,我有客戶資料庫環境中真的存在這樣的資料表),
那使用SSMS查看欄位資訊真的慢到有點抓狂,
現在 Denali 讓你有更好的方法(寫法更簡單且更有效率),
而且返回欄位資訊更齊全且詳細,下面我就來介紹並操作一番。

查看特定資料表欄位資訊: Denali寫法
1.Using sys.dm_exec_describe_first_result_set

SELECT * FROM sys.dm_exec_describe_first_result_set(N'SELECT * FROM A', null, 0) ;


(擷取部分)

2.Using 系統 sp_describe_first_result_set

exec sp_describe_first_result_set @tsql = N'SELECT * FROM A'


(擷取部分)。

查看特定資料表欄位資訊: SQL2005/2008寫法
1.Using sys.tables and sys.all_columns

--查看資料表 A 相關欄位資訊select t1.name as 'TableName',t2.name as 'ColumnName',t2.collation_name,t2.max_length,t2.precision,t2.scale from sys.tables t1 join sys.all_columns t2on t1.object_id=t2.object_idand OBJECT_NAME(t1.object_id)='A'


(擷取部分)

2.Using 系統SP_Help

--查看資料表A 相關欄位資訊sp_help 'dbo.A'


(擷取部分)

MS SQL Server新特性探險:探險代碼 Denali 全系列文章


上一篇
[Denali 新特性探險10]Sequence
下一篇
[Denali 新特性探險新特性探險12]Throw Statement
系列文
MS SQL Server新特性探險:探險代碼 Denali30

尚未有邦友留言

立即登入留言