ROUTINES (Transact-SQL)
針對目前資料庫中目前使用者所能存取的每個預存程序和函數,各傳回一個資料列。描述傳回值的資料行只適用於函數。如果是預存程序,這些資料行就是 NULL。
若要從這些檢視中擷取資訊,請指定 INFORMATION_SCHEMA.view_name 的完整名稱。
[!附註]
ROUTINE_DEFINITION 資料行包含建立函數或預存程序的來源陳述式。這些來源陳述式可能包含內嵌歸位字元。如果您將這個資料行傳回用文字格式來顯示結果的應用程式,ROUTINE_DEFINITION 結果中的內嵌歸位字元可能會影響整體結果集的格式。如果您選取 ROUTINE_DEFINITION 資料行,您必須針對內嵌歸位字元來進行調整;例如,將結果集傳回方格,或將 ROUTINE_DEFINITION 傳回它自己的文字框。
資料行名稱 |
資料類型 |
描述 |
---|---|---|
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 |
上次修改函數的時間。 |