在 SQL Server 中,資料表與檢視表的描述(Description/Extended Property)儲存在系統表中。本文提供一條 T-SQL 查詢,快速取得所有使用者資料表(U)與檢視表(V)的註解內容。
SELECT
so.[id] AS ObjectID,
so.[name] AS ObjectName,
so.xtype AS ObjectType,
CASE
WHEN LEFT(sc.[text], 2) = '/*'
AND CHARINDEX('*/', sc.[text]) > 0
THEN SUBSTRING(sc.[text], 3, CHARINDEX('*/', sc.[text]) - 3)
ELSE ''
END AS Comments
FROM syscomments AS sc
FULL JOIN sysobjects AS so ON so.[id] = sc.[id]
WHERE so.xtype IN ('U', 'V');
| 欄位 | 說明 |
|---|---|
| ObjectID | 物件識別碼 |
| ObjectName | 資料表/檢視表名稱 |
| ObjectType | U = 使用者資料表,V = 檢視表 |
| Comments | 從 syscomments.text 擷取的 /* ... */ 區塊內容 |
/* ... */ 區塊作為註解。sp_addextendedproperty / fn_listextendedproperty)管理中文說明,查詢更直觀:SELECT
OBJECT_NAME(major_id) AS ObjectName,
value AS Description
FROM sys.extended_properties
WHERE class = 1 AND minor_id = 0 AND name = 'MS_Description';
SQL Server 2000 / 2005 / 2008 / 2012 / 2014 / 2016 / 2019 / 2022。