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

SQL Server 2005 列出所有預存程序/函數/檢視表的 T-SQL 腳本

     編輯:SQL Server 2005

最佳查詢方式:sys.all_objects

SQL Server 2005 將所有物件中繼資料儲存在系統視圖中。若要取得完整清單 (含文件化、未文件化、使用者自訂),推薦使用 sys.all_objects,因 sys.procedures 與 sp_stored_procedures 會過濾掉部分內部物件。

1. 列出所有類型為 P/X/PC 的物件 (預存程序、擴充預存程序、CLR 預存程序)

USE [YourDatabaseName];
GO
SELECT *
FROM sys.all_objects
WHERE [type] IN ('P', 'X', 'PC')
ORDER BY [name];
GO

2. 僅列出使用者自訂物件 (排除 Microsoft 內建)

is_ms_shipped = 0 表示非 Microsoft 發布 (即使用者或第三方建立)。

USE [YourDatabaseName];
GO
SELECT *
FROM sys.all_objects
WHERE [type] IN ('P', 'X', 'PC')
  AND [is_ms_shipped] = 0
ORDER BY [name];
GO

3. 物件類型代碼對照表

代碼說明
PSQL 預存程序
X擴充預存程序
PCCLR (Common Language Runtime) 預存程序
FN純量函數
IF內嵌資料表值函數
TF多重陳述式資料表值函數
V檢視表
U使用者資料表

依需求調整 WHERE 子句中的 [type] 即可查詢函數、檢視表等其他物件。

原理補充

  • 系統物件儲存於 master 資料庫,新建資料庫時以 master 為範本,故內建程序自動複製至新資料庫。
  • 若想讓自訂預存程序自動出現在所有新建資料庫,可在 master 中建立;現有資料庫仍需手動部署。

注意事項

Microsoft 不支援直接使用未文件化的系統預存程序/擴充預存程序/函數/檢視表。生產環境使用前務必在測試環境徹底驗證。

此腳本可快速掌握資料庫中所有程式碼物件,適合審計、文件化、重構前評估等場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved