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) |
結構描述的特定名稱。
|
||
SPECIFIC_NAME |
nvarchar(128) |
目錄的特定名稱。 這個名稱與 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 |
傳回類型是字元類型時的最大長度 (以字元為單位)。 如果是 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 |
上次修改函數的時間。 |