Microsoft SQL Server 检索所有存储过程的列表

示例

下面的查询将返回数据库中的所有存储过程的列表,以及关于每个存储过程的基本信息:

SQL Server 2005
SELECT *
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'

的ROUTINE_NAME,ROUTINE_SCHEMA和ROUTINE_DEFINITION列通常是最有用的。

SQL Server 2005
SELECT *
FROM sys.objects
WHERE type = 'P'
SQL Server 2005
SELECT *
FROM sys.procedures

请注意,这个版本拥有从选择一个优势sys.objects,因为它包括了其他列is_auto_executed,is_execution_replicated,is_repl_serializable,和skips_repl_constraints。

SQL Server 2005
SELECT *
FROM sysobjects
WHERE type = 'P'

请注意,输出包含绝不会涉及到存储过程的列。

下一组查询将返回包含字符串“SEARCHTERM”数据库中的所有存储过程:

SQL Server 2005
SELECT o.name
FROM syscomments c
INNER JOIN sysobjects o
    ON c.id=o.id
WHEREo.xtype= 'P'
    ANDc.TEXTLIKE '%SearchTerm%'
SQL Server 2005
SELECT p.name
FROMsys.sql_modulesAS m
INNER JOINsys.proceduresAS p
    ONm.object_id= p.object_id
WHERE definition LIKE '%SearchTerm%'