共用方式為


ROUTINES (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

針對目前資料庫中目前用戶可存取的每個預存程式和函式,各傳回一個數據列。 描述傳回值的數據行僅適用於函式。 針對預存程式,這些數據行會是 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檢視來判斷對象的架構。 INFORMATION_SCHEMA檢視只代表 物件的元數據子集。 尋找物件架構的唯一可靠方法是查詢 sys.objects 目錄檢視。
SPECIFIC_NAME nvarchar(128 目錄的特定名稱。 此名稱與ROUTINE_NAME相同。
ROUTINE_CATALOG nvarchar(128 函式的目錄名稱。
ROUTINE_SCHEMA nvarchar(128 包含此函式的架構名稱。

** 重要 ** 請勿使用INFORMATION_SCHEMA檢視來判斷對象的架構。 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 函式傳回值的數據類型。 如果數據表值函式為 ,則傳 回數據表
CHARACTER_MAXIMUM_LENGTH int 如果傳回類型是字元類型,則字元的最大長度。

-1 適用於 xml 和大型實值型別數據。
CHARACTER_OCTET_LENGTH int 如果傳回類型是字元類型,則以位元組為單位的最大長度。

-1 適用於 xml 和大型實值型別數據。
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。

若要確保您取得完整定義,請在 sys.sql_modules 目錄檢視中查詢OBJECT_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)