返回当前环境中的存储过程列表。
sp_stored_procedures [[@sp_name =] 'name']
[,[@sp_owner =] 'owner']
[,[@sp_qualifier =] 'qualifier']
[@sp_name =] 'name'
是用于返回目录信息的过程名。name 的数据类型是 nvarchar(390),默认设置为 NULL。支持通配符模式匹配。
[@sp_owner =] 'owner'
是过程所有者的名称。owner 的数据类型为 nvarchar(384),默认设置为 NULL。支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认过程可视性规则。
在 Microsoft® SQL Server™ 中,如果当前用户拥有带指定名称的过程,则返回该过程。如果未指定 owner 且当前用户不拥有带指定 name 的过程,则该过程查找由数据库所有者拥有的带指定 name 的过程。如果存在这样的过程,则返回该过程。
[@qualifier =] 'qualifier'
是过程限定符的名称。qualifier 的数据类型是 sysname,默认设置为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。
无
列名 | 数据类型 | 描述 |
---|---|---|
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 |
为获得最大的互操作性,网关客户端应只采用 SQL-92 标准模式匹配(% 和 _ 通配符)。
由于不就当前用户对特定存储过程执行访问的特权信息进行必要的检查,因此访问得不到保障。注意只使用三部分命名方式,因此在 SQL Server 上执行该过程时,只返回本地存储过程,不返回远程存储过程(这类过程需要四部分命名方式)。如果 sp_server_info 的结果集中的服务器特性 ACCESSIBLE_SPROC 为 Y,则只返回可由当前用户执行的存储过程。
在 ODBC 中,sp_stored_procedures 与 SQLProcedures 等效。返回的结果按 PROCEDURE_QUALIFIER、PROCEDURE_OWNER 和 PROCEDURE_NAME 排序。
执行权限默认授予 public 角色。