sp_sproc_columns (Transact-SQL)
为当前环境中的单个存储过程或用户定义函数返回列信息。
语法
sp_sproc_columns [[@procedure_name = ] 'name']
[ , [@procedure_owner = ] 'owner']
[ , [@procedure_qualifier = ] 'qualifier']
[ , [@column_name = ] 'column_name']
[ , [@ODBCVer = ] 'ODBCVer']
[ , [@fUsePattern = ] 'fUsePattern']
参数
- [ @procedure_name = ] 'name'
用于返回目录信息的过程名称。name 的数据类型为 nvarchar(390),默认值为 %,表示当前数据库中的所有表。 支持通配符模式匹配。
[ @procedure_owner =] 'owner'
过程所有者的名称。owner的数据类型为 nvarchar(384),默认值为 NULL。 支持通配符模式匹配。 如果未指定 owner,则遵循基础 DBMS 的默认过程可见性规则。在 SQL Server 2005 中,如果当前用户拥有带指定名称的过程,则返回有关该过程的信息。 如果未指定 owner且当前用户不拥有带指定名称的过程,则 sp_sproc_columns 查找由数据库所有者拥有的带指定名称的过程。 如果存在该过程,则返回有关该过程的列信息。
- [ @procedure_qualifier =] 'qualifier'
过程限定符的名称。qualifier 的数据类型为 sysname,默认值为 NULL。 许多 DBMS 产品都支持表的三部分构成命名方式 (qualifier.owner.name)。 在 SQL Server 中,此参数表示数据库名称。 在某些产品中,该列表示表所在数据库环境的服务器名。
- [ @column_name =] 'column_name'
一个单独的列,当只需要目录信息的一列时可使用该参数。column_name 的数据类型为 nvarchar(384),默认值是 NULL。 如果忽略 column_name,则返回所有列。 支持通配符模式匹配。 为获得最大的互操作性,网关客户端应只采用 SQL-92 标准模式匹配(% 和 _ 通配符)。
- [ @ODBCVer = ] 'ODBCVer'
当前使用的 ODBC 版本。ODBCVer 的数据类型为 int,默认值为 2,指示 ODBC 2.0 版。 有关 ODBC 2.0 版和 ODBC 3.0 版之间差别的详细信息,请参阅 ODBC 3.0 版的 ODBC SQLProcedureColumns 规范。
- [ @fUsePattern =] 'fUsePattern'
确定下划线 (_)、百分号 (%) 和方括号 ([ ]) 字符是否解释为通配符。 有效值为 0(模式匹配为关闭状态)和 1(模式匹配为打开状态)。fUsePattern 的数据类型为 bit,默认值为 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 数据类型的整数代码。 如果该数据类型不能映射到 SQL-92 类型,则该值为 NULL。 本机数据类型名称在 TYPE_NAME 列中返回。 |
TYPE_NAME |
sysname |
数据类型的字符串表示形式。 这是由基础 DBMS 表示的数据类型名称。 |
PRECISION |
int |
有效数字位数。 PRECISION 列的返回值以 10 为基数。 |
LENGTH |
int |
数据的传输大小。 |
SCALE |
smallint |
小数点后的数字位数。 |
RADIX |
smallint |
数值类型的基数。 |
NULLABLE |
smallint |
指定为空性: 1 = 可创建允许空值的数据类型。 0 = 不允许空值。 |
REMARKS |
varchar(254) |
对过程列的说明。SQL Server 不为该列返回值。 |
COLUMN_DEF |
nvarchar(4000) |
列的默认值。 |
SQL_DATA_TYPE |
smallint |
SQL 数据类型出现在描述符的 TYPE 字段中时的值。 此列与 DATA_TYPE 列相同(datetime 和 SQL-92 interval 数据类型除外)。 此列始终返回值。 |
SQL_DATETIME_SUB |
smallint |
如果 SQL_DATA_TYPE 的值是 SQL_DATETIME 或 SQL_INTERVAL,则为 datetime SQL-92 interval 子代码。 对于 datetime 和 SQL-92 interval 以外的数据类型,该字段为 NULL。 |
CHAR_OCTET_LENGTH |
int |
character 或 binary 数据类型的列的最大长度(字节)。 对于所有其他数据类型,该列返回 NULL。 |
ORDINAL_POSITION |
int |
列在表中的序号位置。 表中的第一列为 1。此列始终返回值。 |
IS_NULLABLE |
varchar(254) |
表中列的为空性。 根据 ISO 规则确定为空性。 符合 ISO SQL 的 DBMS 无法返回空字符串。 如果列可包含 NULL,则显示 YES;如果列不能包含 NULL,则显示 NO。 如果不知道为空性,该列则返回零长度字符串。 该列返回的值与 NULLABLE 列返回的值不同。 |
SS_DATA_TYPE |
tinyint |
扩展存储过程使用的 SQL Server 数据类型。 有关详细信息,请参阅 数据类型 (Transact-SQL)。 |
备注
在 ODBC 中,sp_sproc_columns 与 SQLProcedureColumns 等效。 返回的结果按 PROCEDURE_QUALIFIER、PROCEDURE_OWNER、PROCEDURE_NAME 和参数在过程定义内出现的次序排序。
权限
需要对架构的 SELECT 权限。
请参阅
参考
目录存储过程 (Transact-SQL)
系统存储过程 (Transact-SQL)