SQL Server 下讀取 表/欄位 的說明備註資訊
結果程式碼是: 建表後,設定表/欄位的註釋資訊。
下面是 讀取表/欄位 的說明備註 的 SQL 語句。
獲取資料庫表清單:
select top 1000
ROW_NUMBER() OVER (ORDER BY a.object_id) AS No,
a.name AS 表名,
isnull(g.[value],'-') AS 說明
from
sys.tables a left join sys.extended_properties g
on (a.object_id = g.major_id AND g.minor_id = 0)
No 表名 說明
1 test_table 測試表
2 test_main -
獲取資料庫表的欄位清單 [這裡是檢視 test_table 表的欄位]
SELECT
a.column_id AS No,
a.name AS 列名,
isnull(g.[value],'-') AS 說明
FROM
sys.columns a left join sys.extended_properties g
on (a.object_id = g.major_id AND g.minor_id = a.column_id)
WHERE
object_id =
(SELECT object_id FROM sys.tables WHERE name = 'test_table')
No 列名 說明
1 Test_ID 主鍵(自增長)
2 Test_Key 種類
3 Test_Value 數值
4 Test_Type 內部型別
5 Test_BelongTo 從屬關係
6 Test_Grade 等級
7 Test_Remark 備註
8 Test_Visible 是否可見
-----
更加詳細一點的資訊
SELECT
col.name AS 列名,
typ.name as 資料型別,
col.max_length AS 佔用位元組數,
col.precision AS 數字長度,
col.scale AS 小數位數,
col.is_nullable AS 是否允許非空,
col.is_identity AS 是否自增,
case when exists
( SELECT 1
FROM
sys.indexes idx
join sys.index_columns idxCol
on (idx.object_id = idxCol.object_id)
WHERE
idx.object_id = col.object_id
AND idxCol.index_column_id = col.column_id
AND idx.is_primary_key = 1
) THEN 1 ELSE 0 END AS 是否是主鍵
FROM
sys.columns col left join sys.types typ on (col.system_type_id = typ.system_type_id)
WHERE
col.object_id =
(SELECT object_id FROM sys.tables WHERE name = 'test_table')
SQL Server 2005 的 Microsoft SQL Server Management Studio Express
沒有 帶列名一起復制。 湊合著看看吧,就不手動寫列名了。
Test_ID int 4 10 0 0 1 1 主鍵(自增長)
Test_Key varchar 10 0 0 0 0 0 種類
Test_Value varchar 20 0 0 0 0 0 數值
Test_Type int 4 10 0 0 0 0 內部型別
Test_BelongTo int 4 10 0 1 0 0 從屬關係
Test_Grade int 4 10 0 1 0 0 等級
Test_Remark varchar 50 0 0 1 0 0 備註
Test_Visible bit 1 1 0 1 0 0 是否可見