除 SSMS 圖介面外,四種 T-SQL 方法查詢 View、預存程序、函數、觸發器等物件定義:
SELECT OBJECT_DEFINITION(OBJECT_ID('sys.tables'));
NVARCHAR(MAX),不受 sp_helptext 4000 字元限制。EXEC sp_helptext 'sys.tables';
WITH ENCRYPTION)。SELECT definition FROM sys.system_sql_modules WHERE object_id = OBJECT_ID('sys.tables');
sys.*、INFORMATION_SCHEMA.*)。sys.sql_modules。SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('dbo.YourProc');
OBJECT_DEFINITION() 為現代最佳組合。| Type | 說明 | 適用方法 |
|---|---|---|
| P | SQL Stored Procedure | 全部 |
| FN | Scalar Function | 全部 |
| IF | Inline Table-Valued Function | 全部 |
| TF | Table-Valued Function | 全部 |
| V | View | 全部 |
| TR | Trigger (DML/DDL) | 全部 |
| R/RF | Rule / Replication Filter Proc | 全部 |
| C/D | Check/Default Constraint | OBJECT_DEFINITION, sys.sql_modules |
WITH ENCRYPTION 物件上述方法均回傳 NULL。需依賴原始碼管控制,或使用第三方解密工具(法律/合規風險自負)。
OBJECT_DEFINITION(OBJECT_ID(@objname))。SELECT * FROM sys.sql_modules WHERE definition LIKE '%keyword%'。BCP "SELECT OBJECT_DEFINITION(object_id) FROM sys.objects WHERE type IN ('P','V','FN','IF','TF','TR')" QUERYOUT defs.sql -c -T。