首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 實用腳本:列出所有資料表結構與樣本資料

     編輯:關於SqlServer

提供兩段常用 T-SQL 腳本,可在查詢分析器/SSMS 直接執行,結果可匯出 Excel 供文件化或審核使用。

腳本 1:完整資料表結構清單

輸出欄位:資料表名、欄位序號、欄位名、是否識別欄、是否主鍵、資料類型、佔用位元組、精確度、小數位數、允許 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;

腳本 2:匯出所有使用者資料表結構與單筆樣本值

適用於快速掌握資料庫概況,結果含每個資料表的一筆實際資料 (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

使用建議

  • 在 SSMS 中執行後,結果格選取 → 右鍵「複製含標題」 → 貼上 Excel
  • 腳本 1 相容 SQL Server 2000/2005/2008+,腳本 2 建議使用 INFORMATION_SCHEMA 檢視提升相容性
  • 大型資料庫執行腳本 2 可能較慢,建議加上 WHERE TABLE_NAME LIKE 'prefix%' 限制範圍
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved