共用方式為


ROUTINES (Transact-SQL)

針對目前資料庫中目前使用者所能存取的每個預存程序和函數,各傳回一個資料列。 描述傳回值的資料行只適用於函數。 如果是預存程序,這些資料行就是 NULL。

若要從這些檢視中擷取資訊,請指定 INFORMATION_SCHEMA.view_name 的完整名稱。

注意

ROUTINE_DEFINITION 資料行包含建立函數或預存程序的來源陳述式。這些來源陳述式可能包含內嵌歸位字元。如果您將這個資料行傳回用文字格式來顯示結果的應用程式,ROUTINE_DEFINITION 結果中的內嵌歸位字元可能會影響整體結果集的格式。如果您選取 ROUTINE_DEFINITION 資料行,您必須針對內嵌歸位字元來進行調整;例如,將結果集傳回方格,或將 ROUTINE_DEFINITION 傳回它自己的文字框。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

資料行名稱

資料類型

描述

SPECIFIC_CATALOG

nvarchar(128)

目錄的特定名稱。 這個名稱與 ROUTINE_CATALOG 相同。

SPECIFIC_SCHEMA

nvarchar(128)

結構描述的特定名稱。

重要事項重要事項

請勿使用 INFORMATION_SCHEMA 檢視來判斷物件的結構描述。尋找物件之結構描述的唯一可靠方式就是查詢 sys.objects 目錄檢視。

SPECIFIC_NAME

nvarchar(128)

目錄的特定名稱。 這個名稱與 ROUTINE_NAME 相同。

ROUTINE_CATALOG

nvarchar(128)

函數的目錄名稱。

ROUTINE_SCHEMA

nvarchar(128)

包含這個函數的結構描述名稱。

重要事項重要事項

請勿使用 INFORMATION_SCHEMA 檢視來判斷物件的結構描述。尋找物件之結構描述的唯一可靠方式就是查詢 sys.objects 目錄檢視。

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

傳回類型是字元類型時的最大長度 (以字元為單位)。

如果是 xml 及大數值類型資料,便傳回 -1。

CHARACTER_OCTET_LENGTH

int

傳回類型是字元類型時的最大長度 (以位元組為單位)。

如果是 xml 及大數值類型資料,便傳回 -1。

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)

Transact-SQL 函數傳回 SQL,外部寫入的函數傳回 EXTERNAL。

函數一律是 SQL。

ROUTINE_DEFINITION

nvarchar(4000)

如果函數或預存程序未加密,則傳回函數或預存程序之定義文字的前 4000 個字元。 否則,便傳回 NULL。

為了確保取得完整定義,請查詢 OBJECT_DEFINITION 函數或 sys.sql_modules 目錄檢視中的 definition 資料行。

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 資料。

所有函數都傳回 READS,所有預存程序都傳回 MODIFIES。

IS_NULL_CALL

nvarchar(10)

指出如果常式的任何引數是 NULL,是否要呼叫常式。

SQL_PATH

nvarchar(128)

NULL。 保留供將來使用。

SCHEMA_LEVEL_ROUTINE

nvarchar(10)

如果是結構描述層級函數,便傳回 YES;如果不是結構描述層級函數,便傳回 NO。

一律傳回 YES。

MAX_DYNAMIC_RESULT_SETS

smallint

常式傳回的最大動態結果集數目。

如果是函數,便傳回 0。

IS_USER_DEFINED_CAST

nvarchar(10)

如果是使用者自訂轉換函數,便傳回 YES;如果不是使用者自訂轉換函數,便傳回 NO。

一律傳回 NO。

IS_IMPLICITLY_INVOCABLE

nvarchar(10)

如果可以隱含地叫用常式,便傳回 YES;如果不能隱含地叫用常式,便傳回 NO。

一律傳回 NO。

CREATED

datetime

建立常式的時間。

LAST_ALTERED

datetime

上次修改函數的時間。

請參閱

參考

系統檢視 (Transact-SQL)

資訊結構描述檢視 (Transact-SQL)

sys.columns (Transact-SQL)

sys.objects (Transact-SQL)

sys.procedures (Transact-SQL)

sys.sql_modules (Transact-SQL)