Transact-SQL 参考

ROUTINES

当前数据库中的当前用户可以访问的每个存储过程及函数在该视图中占一行。描述返回值的那些列只适用于函数。对于存储过程,这些列将为 NULL。

INFORMATION_SCHEMA.ROUTINES 视图以 sysobjectssyscolumns 系统表为基础。

若要从这些视图中检索信息,请指定完全合格的 INFORMATION_SCHEMA view_name 名称。

说明  ROUTINE_DEFINITION 列包含创建函数、存储过程或触发器的源语句。这些源语句有可能包含嵌入式回车符。如果将该列返回给某个以文本格式显示结果的应用程序,那么 ROUTINE_DEFINITION 结果中的嵌入式回车符可能会影响全部结果集的格式。如果选择 ROUTINE_DEFINITION 列,那么必须对嵌入式回车符进行调整,例如,通过将结果集返回到一个网格或者将 ROUTINE_DEFINITION 返回到其自己的文本框。

列名 数据类型 描述
SPECIFIC_CATALOG nvarchar(128) 特定的目录名称。

对于 SQL Server 2000,该名称与 ROUTINE_CATALOG 相同。

SPECIFIC_SCHEMA nvarchar(128) 特定的目录名称。

对于 SQL Server 2000,该名称与 ROUTINE_SCHEMA 相同。

SPECIFIC_NAME nvarchar(128) 特定的目录名称。

对于 SQL Server 2000,该名称与 ROUTINE_NAME 相同。

ROUTINE_CATALOG nvarchar(128) 函数的目录名。
ROUTINE_SCHEMA nvarchar(128) 函数的所有者名称。
ROUTINE_NAME nvarchar(128) 函数的名称。
ROUTINE_TYPE nvarchar(20) 为存储过程返回 PROCEDURE;为函数返回 FUNCTION。
MODULE_CATALOG nvarchar(128) NULL。留作以后使用。
MODULE_SCHEMA nvarchar(128) NULL。留作以后使用。
MODULE_NAME nvarchar(128) NULL。留作以后使用。
UDT_CATALOG nvarchar(128) NULL。留作以后使用。
UDT_SCHEMA nvarchar(128) NULL。留作以后使用。
UDT_NAME nvarchar(128) NULL。留作以后使用。
DATA_TYPE nvarchar(128) 函数返回值的数据类型。如果是表值函数,那么返回 table
CHARACTER_MAXIMUM_LENGTH int 以字符为单位的最大长度(如果返回类型是字符类型)。
CHARACTER_OCTET_LENGTH int 以字节为单位的最大长度(如果返回类型是字符类型)。
COLLATION_CATALOG nvarchar(128) 返回值的排序规则名的目录部分。对于非字符类型,返回 NULL。
COLLATION_SCHEMA nvarchar(128) 返回值的排序规则名的架构部分。对于非字符类型,返回 NULL。
COLLATION_NAME nvarchar(128) 返回值的排序规则名。对于非字符类型,返回 NULL。
CHARACTER_SET_CATALOG nvarchar(128) 返回值的字符集的目录名。对于非字符类型,返回 NULL。
CHARACTER_SET_SCHEMA nvarchar(128) 返回值的字符集的架构名。对于非字符类型,返回 NULL。
CHARACTER_SET_NAME nvarchar(128) 返回值的字符集的名称。对于非字符类型,返回 NULL。
NUMERIC_PRECISION smallint 返回值的数字精度。对于非数字类型,返回 NULL。
NUMERIC_PRECISION_RADIX smallint 返回值的数字精度基数。对于非数字类型,返回 NULL。
NUMERIC_SCALE smallint 返回值的小数位数。对于非数字类型,返回 NULL。
DATETIME_PRECISION smallint 秒的小数精度(如果返回值是 datetime 类型)。否则,返回 NULL。
INTERVAL_TYPE nvarchar(30) NULL。留作以后使用。
INTERVAL_PRECISION smallint NULL。留作以后使用。
TYPE_UDT_CATALOG nvarchar(128) NULL。留作以后使用。
TYPE_UDT_SCHEMA nvarchar(128) NULL。留作以后使用。
TYPE_UDT_NAME nvarchar(128) NULL。留作以后使用。
SCOPE_CATALOG nvarchar(128) NULL。留作以后使用。
SCOPE_SCHEMA nvarchar(128) NULL。留作以后使用。
SCOPE_NAME nvarchar(128) NULL。留作以后使用。
MAXIMUM_CARDINALITY bigint NULL。留作以后使用。
DTD_IDENTIFIER nvarchar(128) NULL。留作以后使用。
ROUTINE_BODY nvarchar(30) 对于 T-SQL 函数,返回 SQL;对于外部编写的函数,返回 EXTERNAL。

在 SQL Server 2000 中,函数总是 SQL。

ROUTINE_DEFINITION nvarchar(4000) 函数或存储过程的定义文本(如果没有对函数或存储过程加密)。否则,返回 NULL。
EXTERNAL_NAME nvarchar(128) NULL。留作以后使用。
EXTERNAL_LANGUAGE nvarchar(30) NULL。留作以后使用。
PARAMETER_STYLE nvarchar(30) NULL。留作以后使用。
IS_DETERMINISTIC nvarchar(10) 如果例程是确定性的,那么返回 YES。

如果例程是不确定性的,那么返回 NO。

对于存储过程,总是返回 NO。

SQL_DATA_ACCESS nvarchar(30) 返回下面四个值中的一个:

NONE = 函数不包含 SQL。
CONTAINS = 函数可能包含 SQL。
READS = 函数可能读取 SQL 数据。
MODIFIES = 函数可能修改 SQL 数据。

在 SQL Server 2000 中,为所有函数返回 READS,为所有存储过程返回 MODIFIES。

IS_NULL_CALL nvarchar(10) 指明如果例程的任何参数为 NULL,是否调用该例程。

在 SQL Server 2000 中,总是返回 YES。

SQL_PATH nvarchar(128) NULL。留作以后使用。
SCHEMA_LEVEL_ROUTINE nvarchar(10) 如果是架构级函数,那么返回 YES;如果不是架构级函数,则返回 NO。

在 SQL Server 2000 中,总是返回 YES。

MAX_DYNAMIC_RESULT_SETS smallint 例程返回的动态结果集的最大数。

如果是函数,则返回 0;如果是存储过程,则返回 TBD。

IS_USER_DEFINED_CAST nvarchar(10) 如果是用户定义投影函数,则返回 YES;如果不是用户定义投影函数,则返回 NO。

在 SQL Server 2000 中,总是返回 NO。

IS_IMPLICITLY_INVOCABLE nvarchar(10) 如果例程可隐式地调用,那么返回 YES;如果函数不可隐式地调用,那么返回 NO。

在 SQL Server 2000 中,总是返回 NO。

CREATED datetime 创建例程的时间。
LAST_ALTERED datetime 最后一次修改函数的时间。

请参见

syscolumns

sysobjects