sp_sproc_columns (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
为当前环境中的单个存储过程或用户定义函数返回列信息。
语法
sp_sproc_columns
[ [ @procedure_name = ] N'procedure_name' ]
[ , [ @procedure_owner = ] N'procedure_owner' ]
[ , [ @procedure_qualifier = ] N'procedure_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
参数
[ @procedure_name = ] N'procedure_name'
用于返回目录信息的过程的名称。 @procedure_name为 nvarchar(390),默认值%
为 ,这意味着当前数据库中的所有表。 支持通配符模式匹配。
[ @procedure_owner = ] N'procedure_owner'
过程所有者的名称。 @procedure_owner为 nvarchar(384),默认值为 NULL
. 支持通配符模式匹配。 如果未 指定@procedure_owner ,则基础数据库管理系统(DBMS)的默认过程可见性规则适用。
如果当前用户拥有具有指定名称的过程,则返回有关该过程的信息。 如果未 指定@procedure_owner 并且当前用户不拥有具有指定名称的过程, sp_sproc_columns
则查找具有数据库所有者拥有的指定名称的过程。 如果存在该过程,则返回有关该过程的列信息。
[ @procedure_qualifier = ] N'procedure_qualifier'
过程限定符的名称。 @procedure_qualifier为 sysname,默认值为 NULL
. 各种 DBMS 产品支持表的三部分命名(<qualifier>.<owner>.<name>
)。 在 SQL Server 中,此参数表示数据库名称。 在某些产品中,该列表示表所在的数据库环境的服务器名。
[ @column_name = ] N'column_name'
一列,仅在需要一列目录信息时使用。 @column_name为 nvarchar(384),默认值为 NULL
. 如果 省略@column_name ,则返回所有列。 支持通配符模式匹配。 为了达到最佳的互操作性,网关客户端应只采用 ISO 标准模式匹配(% 和 _ 通配符)。
[ @ODBCVer = ] ODBCVer
正在使用的 ODBC 版本。 @ODBCVer为 int,默认值2
为 2.0,表示 ODBC 版本 2.0。 有关 ODBC 版本 2.0 和 ODBC 版本 3.0 之间的差异的详细信息,请参阅 SQLProcedureColumns
ODBC 版本 3.0 的 ODBC 规范。
[ @fUsePattern = ] fUsePattern
确定下划线()、百分比%
(_
)和方括号([
和]
)字符是否解释为通配符。 @fUsePattern 为 位,默认值为 1
. 有效值为 0
(模式匹配已关闭),并且 1
(模式匹配处于打开状态)。
返回代码值
无。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
PROCEDURE_QUALIFIER |
sysname | 过程限定符名称。 此列可以是 NULL 。 |
PROCEDURE_OWNER |
sysname | 过程所有者名称。 该列始终返回值。 |
PROCEDURE_NAME |
nvarchar(134) | 过程名。 该列始终返回值。 |
COLUMN_NAME |
sysname | 返回的每个列的 TABLE_NAME 列名。 该列始终返回值。 |
COLUMN_TYPE |
smallint | 该字段始终返回值: 0 = SQL_PARAM_TYPE_UNKNOWN 1 = SQL_PARAM_TYPE_INPUT 2 = SQL_PARAM_TYPE_OUTPUT 3 = SQL_RESULT_COL 4 = SQL_PARAM_OUTPUT 5 = SQL_RETURN_VALUE |
DATA_TYPE |
smallint | ODBC 数据类型的整数代码。 如果此数据类型无法映射到 ISO 类型,则值为 NULL 。 本机数据类型名称在 TYPE_NAME 列中返回。 |
TYPE_NAME |
sysname | 数据类型的字符串表示形式。 此值是基础 DBMS 提供的数据类型名称。 |
PRECISION |
int | 有效数字位数。 该列的 PRECISION 返回值在 base 10 中。 |
LENGTH |
int | 数据的传输大小。 |
SCALE |
smallint | 小数点右边的数字位数。 |
RADIX |
smallint | 数值类型的基数。 |
NULLABLE |
smallint | 指定为空性:1 = 可以创建允许 null 值的数据类型。0 = 不允许 Null 值。 |
REMARKS |
varchar(254) | 对过程列的说明。 SQL Server 不返回此列的值。 |
COLUMN_DEF |
nvarchar(4000) | 列的默认值。 |
SQL_DATA_TYPE |
smallint | 在描述符的字段中显示 TYPE SQL 数据类型的值。 此列与 DATA_TYPE 列相同,日期 /时间 和 ISO 间隔 数据类型除外。 该列始终返回值。 |
SQL_DATETIME_SUB |
smallint | 日期/时间 ISO 间隔子代码(如果值为SQL_DATA_TYPE SQL_DATETIME 或 SQL_INTERVAL )。 对于日期/时间和 ISO 间隔以外的数据类型,此字段为 NULL 。 |
CHAR_OCTET_LENGTH |
int | 字符或二进制数据类型列的最大长度(以字节为单位)。 对于所有其他数据类型,此列返回一个 NULL 。 |
ORDINAL_POSITION |
int | 列在表中的序号位置。 表中的第一列是 1 。 该列始终返回值。 |
IS_NULLABLE |
varchar(254) | 表中的列的为 Null 性。 根据 ISO 规则确定为 Null 性。 符合 ISO 的 DBMS 无法返回空字符串。 显示 YES 列是否可以包含 null,如果 NO 列不能包含 null。如果为 Null 性为未知,该列将返回零长度字符串。 为此列返回的值不同于为 NULLABLE 该列返回的值。 |
SS_DATA_TYPE |
tinyint | 扩展存储过程使用的 SQL Server 数据类型。 有关详细信息,请参阅数据类型(Transact-SQL)。 |
注解
sp_sproc_columns
等效于 SQLProcedureColumns
ODBC。 返回的结果按以下PROCEDURE_OWNER
PROCEDURE_NAME
顺序PROCEDURE_QUALIFIER
排序:参数在过程定义中显示的顺序。
权限
需要对架构的 SELECT
权限。