sys.dm_db_uncontained_entities (Transact-SQL)

適用於:SQL Server

顯示資料庫中使用的任何未受控制的 物件。 未受控制的物件是跨越自主資料庫中資料庫界限的物件。 此檢視可從自主資料庫和非自主資料庫存取。 如果sys.dm_db_uncontained_entities是空的,您的資料庫不會使用任何未受控制的實體。

如果模組多次越過資料庫界限,則只會報告第一個探索到的交叉。

資料行名稱 型別 說明
class int 1 = 物件或資料行(包括模組、XP、檢視表、同義字和資料表)。

4 = 資料庫主體

5 = 元件

6 = 類型

7 = 索引 (全文檢索索引)

12 = 資料庫 DDL 觸發程式

19 = 路由

30 = 稽核規格
class_desc nvarchar(120) 實體類別的描述。 符合 類別的下列其中一項:

OBJECT_OR_COLUMN

DATABASE_PRINCIPAL

裝配

類型

INDEX

DATABASE_DDL_TRIGGER

路線

AUDIT_SPECIFICATION
major_id int 實體的識別碼。

如果 class = 1,則object_id

如果 class = 4,則sys.database_principals.principal_id。

如果 class = 5,則sys.assemblies.assembly_id。

如果 class = 6,則sys.types.user_type_id。

如果 class = 7,則sys.indexes.index_id。

如果 class = 12,則sys.triggers.object_id。

如果 class = 19,則sys.routes.route_id。

如果 class = 30,則為 sys。 database_audit_specifications.database_specification_id。
statement_line_number int 如果類別是模組,則傳回未受限制使用所在的行號。 否則,此值為 null。
statement_ offset_begin int 如果類別是模組,則表示以位元組為單位,從 0 開始,開始使用未限制的起始位置。 否則傳回值為 null。
statement_ offset_end int 如果類別是模組,則表示以位元組為單位,從 0 開始,結束位置為未限制的使用。 值 -1 表示模組的結尾。 否則傳回值為 null。
statement_type nvarchar(512) 語句的類型。
feature_名稱 nvarchar(256) 傳回物件的外部名稱。
feature_type_name nvarchar(256) 傳回功能的類型。

備註

sys.dm_db_uncontained_entities顯示可能跨越資料庫界限的實體。 它會傳回任何可能使用資料庫外部物件的使用者實體。

報告下列功能類型。

  • 未知的內含專案行為(動態 SQL 或延遲名稱解析)

  • DBCC 命令

  • 系統預存程式

  • 系統純量函式

  • 系統資料表值函式

  • 系統內建函式

安全性

權限

sys.dm_db_uncontained_entities只會傳回使用者具有某種許可權類型的物件。 若要完整評估資料庫的內含專案,此函式應該由高許可權使用者使用,例如系統管理員 固定伺服器角色的成員 db_owner 角色。

範例

下列範例會建立名為 P1 的程式,然後查詢 sys.dm_db_uncontained_entities 。 查詢會報告 P1 使用 資料庫外部的 sys.endpoints

CREATE DATABASE Test;  
GO  
  
USE Test;  
GO  
CREATE PROC P1  
AS   
SELECT * FROM sys.endpoints ;  
GO  
SELECT SO.name, UE.* FROM sys.dm_db_uncontained_entities AS UE  
LEFT JOIN sys.objects AS SO  
    ON UE.major_id = SO.object_id;  

另請參閱

自主資料庫