提供兩段常用 T-SQL 腳本,可在查詢分析器/SSMS 直接執行,結果可匯出 Excel 供文件化或審核使用。
輸出欄位:資料表名、欄位序號、欄位名、是否識別欄、是否主鍵、資料類型、佔用位元組、精確度、小數位數、允許 NULL、預設值、欄位說明 (Extended Property)。
SELECT
(CASE WHEN a.colorder = 1 THEN d.name ELSE '' END) AS 表名,
a.colorder AS 字段序号,
a.name AS 字段名,
(CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END) AS 标识,
(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 '√' ELSE '' END) AS 主键,
b.name AS 类型,
a.length AS 占用字节数,
COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数,
(CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END) AS 允许空,
ISNULL(e.text, '') AS 默认值,
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 sysproperties g ON a.id = g.id AND a.colid = g.smallid
ORDER BY a.id, a.colorder;
適用於快速掌握資料庫概況,結果含每個資料表的一筆實際資料 (TOP 1)。
-- ======================================================
-- Export all user tables definition and one sample value
-- ======================================================
-- 完整腳本請參考原文,核心邏輯:
-- 1. 迴圈所有使用者資料表 (sysobjects xtype='U')
-- 2. 取得欄位定義 (INFORMATION_SCHEMA.COLUMNS)
-- 3. 取得該表 TOP 1 資料列
-- 4. 組合輸出:表名、欄位清單、樣本值
-- 5. 結果可直接複製至 Excel
INFORMATION_SCHEMA 檢視提升相容性WHERE TABLE_NAME LIKE 'prefix%' 限制範圍