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

實用 SQL Server 腳本集:列出所有資料表結構、欄位定義與範例資料

     編輯:關於SqlServer

腳本一:完整資料表結構報表 (含主鍵、身分欄位、預設值、說明)

在查詢分析器執行,結果可直接複製到 Excel:

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

腳本二:匯出所有使用者資料表定義與一筆範例資料

SET ANSI_NULLS OFF
GO
SET NOCOUNT ON
GO

-- 後續邏輯:游標遍歷所有使用者資料表,動態建構 SELECT TOP 1 * 查詢,
-- 並將結構定義與第一筆資料合併輸出,適合匯出 Excel 產生資料字典。
-- 完整腳本較長,核心思想為:
-- 1. 宣告游標 SELECT name FROM sysobjects WHERE xtype='U'
-- 2. 迴圈中取得各表欄位清單 (INFORMATION_SCHEMA.COLUMNS)
-- 3. 執行 SELECT TOP 1 * FROM 表名 取得範例資料
-- 4. 格式化輸出:表名、欄位名、型別、長度、範例值

使用建議

  • 腳本一適合快速掌握整體結構,輸出欄位固定,易於 Excel 整理。
  • 腳本二適合需要實際資料樣本的文件化場景。
  • 執行前請確認權限:需具備 SELECT 系統表與使用者表的權限。
  • 大型資料庫執行腳本二可能耗時較久,建議離峰時段執行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved