檢索所有儲存過程的列表
以下查詢將返回資料庫中所有儲存過程的列表,其中包含有關每個儲存過程的基本資訊:
Version >= SQL Server 2005
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
ROUTINE_NAME
,ROUTINE_SCHEMA
和 ROUTINE_DEFINITION
列通常是最有用的。
Version >= SQL Server 2005
SELECT *
FROM sys.objects
WHERE type = 'P'
Version >= SQL Server 2005
SELECT *
FROM sys.procedures
請注意,此版本優於從 sys.objects 中選擇,因為它包含附加列 is_auto_executed
,is_execution_replicated
,is_repl_serializable
和 skips_repl_constraints
。
Version < SQL Server 2005
SELECT *
FROM sysobjects
WHERE type = 'P'
請注意,輸出包含許多永遠不會與儲存過程相關的列。
下一組查詢將返回資料庫中包含字串’SearchTerm’的所有儲存過程:
Version < SQL Server 2005
SELECT o.name
FROM syscomments c
INNER JOIN sysobjects o
ON c.id=o.id
WHERE o.xtype = 'P'
AND c.TEXT LIKE '%SearchTerm%'
Version >= SQL Server 2005
SELECT p.name
FROM sys.sql_modules AS m
INNER JOIN sys.procedures AS p
ON m.object_id = p.object_id
WHERE definition LIKE '%SearchTerm%'