sys.dm_db_uncontained_entities (Transact-SQL)sys.dm_db_uncontained_entities (Transact-SQL)

適用対象: ○SQL Server (2012 以降) XAzure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2012) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

データベースで使用される非包含オブジェクトを表示します。Shows any uncontained objects used in the database. 非包含オブジェクトとは、包含データベースのデータベース境界を越えるオブジェクトです。Uncontained objects are objects that cross the database boundary in a contained database. このビューは、包含データベースと非包含データベースの両方からアクセスできます。This view is accessible from both a contained database and a non-contained database. Sys.dm_db_uncontained_entities が空の場合、データベースは、非包含エンティティを使用しません。If sys.dm_db_uncontained_entities is empty, your database does not use any uncontained entities.

モジュールがデータベース境界を 2 回以上越えている場合、最初に検出された交差のみが報告されます。If a module crosses the database boundary more than once, only the first discovered crossing is reported.

列名Column name Type [説明]Description
classclass intint 1 = オブジェクトまたは列 (モジュール、XP、ビュー、シノニム、およびテーブルを含む)。1 = Object or column (includes modules, XPs, views, synonyms, and tables).

4 = データベース プリンシパル4 = Database Principal

5 = アセンブリ5 = Assembly

6 = 型6 = Type

7 = インデックス (フルテキスト インデックス)7 = Index (Full-text Index)

12 = データベース DDL トリガー12 = Database DDL Trigger

19 = ルート19 = Route

30 = 監査の仕様30 = Audit Specification
class_descclass_desc nvarchar(120)nvarchar(120) エンティティのクラスの説明。Description of class of the entity. クラスと一致するには、次のいずれか:One of the following to match the class:








major_idmajor_id intint エンティティの ID。ID of the entity.

場合クラス= 1、object_idIf class = 1, then object_id

場合クラス= 4、sys.database_principals.principal_id します。If class = 4, then sys.database_principals.principal_id.

場合クラス= 5、sys.assemblies.assembly_id します。If class = 5, then sys.assemblies.assembly_id.

場合クラス= 6、sys.types.user_type_id します。If class = 6, then sys.types.user_type_id.

場合クラス= 7、sys.indexes.index_id します。If class = 7, then sys.indexes.index_id.

場合クラス= 12、sys.triggers.object_id します。If class = 12, then sys.triggers.object_id.

場合クラス= 19、sys.routes.route_id。If class = 19, then sys.routes.route_id.

場合クラス= 30、sys です。If class = 30, then sys. database_audit_specifications.database_specification_id します。database_audit_specifications.database_specification_id.
statement_line_numberstatement_line_number intint クラスがモジュールの場合は、非包含エンティティの使用が見つかった行番号を返します。If the class is a module, returns the line number on which the uncontained use is located. それ以外の場合、値は null になります。Otherwise the value is null.
statement_ offset_beginstatement_ offset_begin intint クラスがモジュールの場合は、非包含エンティティの使用が開始する開始位置 (バイト単位) が 0 で始まることを示します。If the class is a module, indicates, in bytes, beginning with 0, the starting position where uncontained use begins. それ以外の場合、戻り値は null になります。Otherwise the return value is null.
statement_ offset_endstatement_ offset_end intint クラスがモジュールの場合は、非包含エンティティの使用の終了位置 (バイト単位) が 0 で始まることを示します。If the class is a module, indicates, in bytes, starting with 0, the ending position of the uncontained use. 値 -1 はモジュールの最後を表します。A value of -1 indicates the end of the module. それ以外の場合、戻り値は null になります。Otherwise the return value is null.
statement_typestatement_type nvarchar(512)nvarchar(512) ステートメントの種類。The type of statement.
feature_ namefeature_ name nvarchar (256)nvarchar(256) オブジェクトの外部名を返します。Returns the external name of the object.
feature_type_namefeature_type_name nvarchar (256)nvarchar(256) 機能の種類を返します。Returns the type of feature.


sys.dm_db_uncontained_entities は、データベース境界を越える可能性のあるエンティティを示しています。sys.dm_db_uncontained_entities shows those entities which can potentially cross the database boundary. データベースの外部のオブジェクトを使用する可能性のあるユーザー エンティティが返されます。It will return any user entities that have the potential to use objects outside of the database.

次の機能の種類が報告されます。The following feature types are reported.

  • 不明な包含動作 (動的な SQL または名前の遅延解決)Unknown containment behavior (dynamic SQL or deferred name resolution)

  • DBCC コマンドDBCC command

  • システム ストアド プロシージャSystem stored procedure

  • システム スカラー関数System scalar function

  • システム テーブル値関数System table valued function

  • システム組み込み関数System built-in function



sys.dm_db_uncontained_entities のみ、ユーザーが何らかの種類のアクセス許可オブジェクトを返します。sys.dm_db_uncontained_entities only returns objects for which the user has some type of permission. メンバーなど、高い特権を持つユーザーによってこの関数を使用する必要があります、データベースの包含を完全に評価する、 sysadmin固定サーバー ロールまたはdb_ownerロール。To fully evaluate the containment of the database this function should be used by a high privileged user such as a member of the sysadmin fixed server role or the db_owner role.


次の例では、P1 という名前のプロシージャを作成し、 sys.dm_db_uncontained_entitiesにクエリを実行します。The following example creates a procedure named P1, and then queries sys.dm_db_uncontained_entities. このクエリは、P1 がデータベースの外部にある sys.endpoints を使用していることを報告します。The query reports that P1 uses sys.endpoints which is outside of the database.

USE Test;  
SELECT * FROM sys.endpoints ;  
SELECT, UE.* FROM sys.dm_db_uncontained_entities AS UE  
LEFT JOIN sys.objects AS SO  
    ON UE.major_id = SO.object_id;  

参照See Also

包含データベースContained Databases