sys.sql_modules (Transact-SQL)
適用于:SQL Server
Azure SQL資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics Analytics
Platform System (PDW)
針對SQL Server中的 SQL 語言定義模組的每個物件,各傳回一個資料列,包括原生編譯的純量使用者定義函數。 類型 P、RF、V、TR、FN、IF、TF 和 R 的物件,各有一個相關聯的 SQL 模組。 獨立預設值,即類型 D 的物件,在這份檢視中也有 SQL 模組定義。 如需這些類型的描述,請參閱 type
sys.objects 目錄檢視中的資料行。
如需詳細資訊,請參閱記憶體內部 OLTP 的純量使用者定義函數。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
object_id | int | 包含物件的物件識別碼。 在資料庫中,這是唯一的。 |
definition | nvarchar(max) | 定義這個模組的 SQL 文字。 您也可以使用 OBJECT_DEFINITION 內建函式來取得此值。 NULL = 已加密。 |
uses_ansi_nulls | bit | 模組是以 SET ANSI_NULLS ON 加以建立。 如果是規則和預設值,則永遠 = 0。 |
uses_quoted_identifier | bit | 模組是以 SET QUOTED_IDENTIFIER ON 加以建立。 |
is_schema_bound | bit | 模組是以 SCHEMABINDING 選項加以建立。 如果是原生編譯預存程序,一定包含 1 值。 |
uses_database_collation | bit | 1 = 結構描述繫結模組定義為了正確評估,必須依據資料庫的預設定序而定;否則為 0。 這種相依性可以防止資料庫的預設定序變更。 |
is_recompiled | bit | 程序是以 WITH RECOMPILE 選項加以建立。 |
null_on_null_input | bit | 模組宣告為在任何輸入上 NULL 產生 NULL 輸出。 |
execute_as_principal_id | 整數 | EXECUTE AS 資料庫主體的識別碼。NULL 根據預設,或如果 EXECUTE AS CALLER。如果 EXECUTE AS SELF 或 EXECUTE AS < 主體,則為指定主體的識別碼 > 。 -2 = EXECUTE AS OWNER。 |
uses_native_compilation | bit | 適用于:SQL Server 2014 (12.x) 到 SQL Server 2014 (12.x) 。 0 = 不是原生編譯 1 = 是原生編譯 預設值為 0。 |
is_inlineable | bit | 適用于:SQL Server 2019 (15.x) 和更新版本。 指出模組是否可內嵌。 內嵌性是以 這裡指定的條件為基礎。 0 = 不可內嵌 1 = 是內嵌的。 對於純量使用者定義函式 (UDF) ,如果 UDF 是內嵌的,則此值會是 1,否則為 0。 它一律包含內嵌資料表值函式的 1 值, (TVF) ,所有其他模組類型的 0。 |
inline_type | bit | 適用于:SQL Server 2019 (15.x) 和更新版本。 指出目前是否開啟模組的內嵌。 0 = 內嵌已關閉 1 = 內嵌已開啟。 若為純量使用者定義函式 (UDF) ,如果內嵌已明確或隱含地) (,則此值會是 1。 內嵌資料表值函式的值一律為 1, (TVF) ,而其他模組類型的值為 0。 |
備註
D 類型的 DEFAULT 條件約束的 SQL 運算式可在目錄檢視 中找到sys.default_constraints 。 CHECK 條件約束的 SQL 運算式,類型為 C 的物件,位於目錄檢視 sys.check_constraints 。
Sys.dm_db_uncontained_entities (Transact-SQL) 也會說明這項資訊。
重新命名預存程式、函式、檢視或觸發程式不會變更目錄檢視定義 sys.sql_modules
資料行中對應物件的名稱,也不會變更 OBJECT_DEFINITION 內建函式所傳回的定義。 基於這個理由,我們建議您 sp_rename
不要用來重新命名這些物件類型。 相反地,請卸除物件,再利用它的新名稱來重新建立物件。 深入瞭解 transact-SQL sp_rename () 。
權限
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
範例
下列範例會傳回目前資料庫中每個模組object_id、架構名稱、物件名稱、物件類型和定義。
SELECT
sm.object_id
, ss.[name] as [schema]
, o.[name] as object_name
, o.[type]
, o.[type_desc]
, sm.[definition]
FROM sys.sql_modules AS sm
JOIN sys.objects AS o
ON sm.object_id = o.object_id
JOIN sys.schemas AS ss
ON o.schema_id = ss.schema_id
ORDER BY
o.[type]
, ss.[name]
, o.[name];
另請參閱
目錄檢視 (Transact-SQL)
物件目錄檢視 (Transact-SQL)
查詢 SQL Server 系統目錄 FAQ
In-Memory OLTP (記憶體中最佳化)