適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
針對 SQL Server 中 SQL 語言定義的模組的每個物件,傳回一個數據列,包括原生編譯的純量使用者定義函數。
P
RF
V
TR、、、、、 FN和 IF 類型的TF物件具有相關聯的 SQL 模組。 R 獨立預設值,類型 D的物件,在此檢視中也有 SQL 模組定義。 如需這些類型的描述,請參閱 type sys.objects 目錄檢視中的數據行。
如需詳細資訊,請參閱記憶體內部 OLTP 的純量使用者定義函數。
| 欄位名稱 | 數據類型 | Description |
|---|---|---|
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 |
Int | 資料庫主體的 EXECUTE AS 標識碼。NULL 根據預設,如果 為 ,則為 EXECUTE AS CALLER。如果 EXECUTE AS SELF 或 EXECUTE AS <principal>,則為指定主體的標識碼。-2
=
EXECUTE AS OWNER。 |
uses_native_compilation |
bit |
0 = 不是原生編譯的1 = 原生編譯預設值是 0。適用於:SQL Server 2014 (12.x) 和更新版本。 |
is_inlineable |
bit | 指出模組是否可以內嵌。 內嵌性是以 需求中指定的條件為基礎。0 = 無法內嵌1 = 可以內嵌。對於純量使用者定義函式 (UDF),如果 UDF 可以內嵌,則值為 1 , 0 否則為 。 它一律包含內嵌數據表值函式 (TVF) 和1所有其他模組類型的 值0。適用於:SQL Server 2019 (15.x) 和更新版本。 |
inline_type |
bit | 指出模組目前是否開啟內嵌。 0 = 內嵌已關閉 1 = 內嵌已開啟。 對於純量使用者定義函式 (UDF),如果內嵌已開啟(明確或隱含),則值為 1 。 值一律 1 適用於內嵌數據表值函式 (TVF),以及其他 0 模組類型。適用於:SQL Server 2019 (15.x) 和更新版本。 |
Remarks
在 DEFAULT檢視中找到條件約束的 D SQL 運算式,類型為 的物件。 在目錄檢視 CHECK中找到條件約束的 C SQL 運算式,類型為 的物件。
這項資訊也會在 sys.dm_db_uncontained_entities中說明。
重新命名預存程式、函數、檢視或觸發程式並不會變更目錄檢視定義 sys.sql_modules 數據行中對應物件的名稱,也不會變更內建函式所傳回 OBJECT_DEFINITION 定義。 基於這個理由,我們建議您不要使用 sp_rename 來重新命名這些對象類型。 相反地,請卸除並重新建立具有新名稱的物件。 深入瞭解 sp_rename。
Permissions
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
Examples
下列範例會傳回目前資料庫中每個模組的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
INNER JOIN sys.objects AS o
ON sm.object_id = o.object_id
INNER JOIN sys.schemas AS ss
ON o.schema_id = ss.schema_id
ORDER BY o.[type], ss.[name], o.[name];