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

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions)

데이터베이스에 사용된 포함되지 않은 개체를 표시합니다.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.

모듈이 데이터베이스 경계를 두 번 이상 교차한 경우 처음에 발견된 교차만 보고됩니다.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 인 경우 database_principals. principal_id입니다.If class = 4, then sys.database_principals.principal_id.

클래스 = 5 인 경우 assembly_id 합니다.If class = 5, then sys.assemblies.assembly_id.

클래스 = 6 인 경우에는 user_type_id 합니다.If class = 6, then sys.types.user_type_id.

Class = 7 인 경우 index_id 합니다.If class = 7, then sys.indexes.index_id.

클래스 = 12 이면 object_id 합니다.If class = 12, then sys.triggers.object_id.

클래스 = 19 인 경우에는 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_ 이름feature_ 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.


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


사용 권한Permissions

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