sp_stored_procedures (Transact-SQL)
返回当前环境中的存储过程列表。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。 |
语法
sp_stored_procedures [ [ @sp_name = ] 'name' ]
[ , [ @sp_owner = ] 'schema']
[ , [ @sp_qualifier = ] 'qualifier' ]
[ , [@fUsePattern = ] 'fUsePattern' ]
参数
[ @sp_name = ] 'name'
用于返回目录信息的过程名。 name 的数据类型为 nvarchar(390),默认值为 NULL。 支持通配符模式匹配。[ @sp_owner = ] 'schema'
过程所属架构的名称。 schema 的数据类型为 nvarchar(384),默认值为 NULL。 支持通配符模式匹配。 如果未指定 owner,则遵循基础 DBMS 的默认过程可见性规则。在 SQL Server 中,如果当前架构包含具有指定名称的过程,则返回此过程。 如果指定了非限定存储过程,则数据库引擎按以下顺序搜索此过程:
当前数据库的 sys 架构。
调用方的默认架构(在使用批或动态 SQL 执行时);或者,如果非限定的过程名称出现在另一个过程定义的主体中,则接着搜索包含这一过程的架构。
当前数据库中的 dbo 架构。
[ @qualifier = ] 'qualifier'
过程限定符的名称。 qualifier 的数据类型为 sysname,默认值为 NULL。 多种 DBMS 产品支持表的三部分命名方式 (qualifier**.schema.**name)。 在 SQL Server 中,qualifier 表示数据库名称。 在某些产品中,它表示表所在数据库环境的服务器名称。[ @fUsePattern = ] 'fUsePattern'
确定是否将下划线 (_)、百分号 (%) 或 方括号 ([ ]) 解释为通配符。 fUsePattern 的数据类型为 bit,默认值为 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 |
保留供将来使用。 |
REMARKS |
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 执行时,只返回本地存储过程而不返回要求四部分命名的远程存储过程。 如果 sp_server_info 的结果集中的服务器特性 ACCESSIBLE_SPROC 为 Y,则只返回可由当前用户执行的存储过程。
在 ODBC 中,sp_stored_procedures 与 SQLProcedures 等效。 返回的结果按 PROCEDURE_QUALIFIER、PROCEDURE_OWNER 和 PROCEDURE_NAME 排序。
权限
需要对架构的 SELECT 权限。
示例
A.返回当前数据库中的所有存储过程
以下示例返回 AdventureWorks2012 数据库中的所有存储过程。
USE AdventureWorks2012;
GO
EXEC sp_stored_procedures;
B.返回单个存储过程
以下示例返回 uspLogError 存储过程的结果集。
USE AdventureWorks2012;
GO
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2012', 1;