当前数据库中的当前用户可以访问的每个存储过程及函数在该视图中占一行。描述返回值的那些列只适用于函数。对于存储过程,这些列将为 NULL。
INFORMATION_SCHEMA.ROUTINES 视图以 sysobjects 和 syscolumns 系统表为基础。
若要从这些视图中检索信息,请指定完全合格的 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。 在 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 | 最后一次修改函数的时间。 |