sp_stored_procedures (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回当前环境中的存储过程列表。

Transact-SQL 语法约定

语法

  
sp_stored_procedures [ [ @sp_name = ] 'name' ]   
    [ , [ @sp_owner = ] 'schema']   
    [ , [ @sp_qualifier = ] 'qualifier' ]  
    [ , [@fUsePattern = ] 'fUsePattern' ]  

参数

[ @sp_name = ] 'name' 用于返回目录信息的过程的名称。 namenvarchar (390) ,默认值为 NULL。 支持通配符模式匹配。

[ @sp_owner = ] 'schema' 过程所属的架构的名称。 架构nvarchar (384) ,默认值为 NULL。 支持通配符模式匹配。 如果未指定 所有者 ,则应用基础 DBMS 的默认过程可见性规则。

在 SQL Server 中,如果当前架构包含具有指定名称的过程,则返回该过程。 如果指定了非限定存储过程,则数据库引擎将按以下顺序搜索该过程:

  • 当前数据库的 sys 架构。

  • 调用方的默认架构(在使用批或动态 SQL 执行时);或者,如果非限定的过程名称出现在另一个过程定义的主体中,则接着搜索包含这一过程的架构。

  • 当前数据库中的 dbo 架构。

[ @qualifier = ] 'qualifier' 过程限定符的名称。 限定符sysname,默认值为 NULL。 各种 DBMS 产品支持以 (限定符的形式对表进行三部分命名架构name。 在 SQL Server 中,限定符表示数据库名称。 在某些产品中,它表示表所在数据库环境的服务器名称。

[ @fUsePattern = ] 'fUsePattern' 确定是否将下划线 (_) 、百分比 (%) 或方括号 [ ]) 解释为通配符。 fUsePattern,默认值为 1。

0 = 模式匹配已关闭。

1 = 模式匹配已打开。

返回代码值

结果集

列名称 数据类型 说明
PROCEDURE_QUALIFIER sysname 过程限定符名称。 该列可以为 NULL。
PROCEDURE_OWNER sysname 过程所有者名称。 该列始终返回值。
PROCEDURE_NAME nvarchar (134) 过程名。 该列始终返回值。
NUM_INPUT_PARAMS int 保留供将来使用。
NUM_OUTPUT_PARAMS int 保留供将来使用。
NUM_RESULT_SETS int 保留供将来使用。
备注 varchar (254) 对过程的说明。 SQL Server不返回此列的值。
PROCEDURE_TYPE smallint 过程类型。 SQL Server始终返回 2.0。 此值可以为下列值之一:

0 = SQL_PT_UNKNOWN

1 = SQL_PT_PROCEDURE

2 = SQL_PT_FUNCTION

注解

为了获得最大互操作性,网关客户端应只采用 SQL 标准模式匹配(百分号 (%) 和下划线 (_) 通配符)。

由于不就当前用户对特定存储过程执行访问的权限信息进行必要的检查,因此访问得不到保证。 请注意只使用三部分命名。 这意味着,在针对SQL Server执行时,仅返回本地存储过程,而不是需要四部分命名) (远程存储过程。 如果服务器属性ACCESSIBLE_SPROC在 sp_server_info的结果集中为 Y,则仅返回可由当前用户执行的存储过程。

sp_stored_procedures 等效于 ODBC 中的 SQLProcedures 。 返回的结果按 PROCEDURE_QUALIFIERPROCEDURE_OWNERPROCEDURE_NAME进行排序。

权限

需要对架构的 SELECT 权限。

示例

A. 返回当前数据库中的所有存储过程

以下示例返回 AdventureWorks2022 数据库中的所有存储过程。

USE AdventureWorks2022;  
GO  
EXEC sp_stored_procedures;  

B. 返回单个存储过程

以下示例返回 uspLogError 存储过程的结果集。

USE AdventureWorks2022;  
GO  
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2022', 1;  

另请参阅

目录存储过程 (Transact-SQL)
系统存储过程 (Transact-SQL)