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

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Mostra qualsiasi oggetto non contenuto utilizzato nel database.Shows any uncontained objects used in the database. Gli oggetti non contenuti sono oggetti che superano il limite del database in un database indipendente.Uncontained objects are objects that cross the database boundary in a contained database. Questa vista è accessibile sia da un database indipendente che da un database non indipendente.This view is accessible from both a contained database and a non-contained database. Se db_uncontained_entities è vuoto, il database non utilizza entità non contenute.If sys.dm_db_uncontained_entities is empty, your database does not use any uncontained entities.

Se un modulo supera il limite del database più di una volta, viene riportato solo il primo superamento individuato.If a module crosses the database boundary more than once, only the first discovered crossing is reported.

Nome colonnaColumn name TipoType DescriptionDescription
classclass intint 1 = Oggetto o colonna (include moduli, XP, viste, sinonimi e tabelle).1 = Object or column (includes modules, XPs, views, synonyms, and tables).

4 = Entità di database4 = Database Principal

5 = Assembly5 = Assembly

6 = Tipo6 = Type

7 = Indice (indice full-text)7 = Index (Full-text Index)

12 = Trigger DDL database12 = Database DDL Trigger

19 = Route19 = Route

30 = Specifica del controllo30 = Audit Specification
class_descclass_desc nvarchar(120)nvarchar(120) Descrizione della classe dell'entità.Description of class of the entity. Uno dei valori seguenti in base alla classe:One of the following to match the class:

OBJECT_OR_COLUMNOBJECT_OR_COLUMN

DATABASE_PRINCIPALDATABASE_PRINCIPAL

ASSEMBLYASSEMBLY

TYPETYPE

INDEXINDEX

DATABASE_DDL_TRIGGERDATABASE_DDL_TRIGGER

ROUTEROUTE

AUDIT_SPECIFICATIONAUDIT_SPECIFICATION
major_idmajor_id intint ID dell'entità.ID of the entity.

Se classe = 1, allora object_idIf class = 1, then object_id

Se classe = 4, quindi principal_id.If class = 4, then sys.database_principals.principal_id.

Se classe = 5, quindi assembly_id.If class = 5, then sys.assemblies.assembly_id.

Se classe = 6, quindi user_type_id.If class = 6, then sys.types.user_type_id.

Se classe = 7, quindi index_id.If class = 7, then sys.indexes.index_id.

Se classe = 12, quindi OBJECT_ID.If class = 12, then sys.triggers.object_id.

Se classe = 19, Route_ID.If class = 19, then sys.routes.route_id.

Se classe = 30, quindi sys.If class = 30, then sys. database_audit_specifications.databse_specification_id.database_audit_specifications.databse_specification_id.
statement_line_numberstatement_line_number intint Se la classe è un modulo, restituisce il numero di riga in cui si trova l'utilizzo non contenuto.If the class is a module, returns the line number on which the uncontained use is located. In caso contrario, il valore è Null.Otherwise the value is null.
statement_ offset_beginstatement_ offset_begin intint Se la classe è un modulo, indica la posizione iniziale dell'utilizzo non contenuto partendo da 0. Il valore viene espresso in byte.If the class is a module, indicates, in bytes, beginning with 0, the starting position where uncontained use begins. In caso contrario, il valore restituito è Null.Otherwise the return value is null.
statement_ offset_endstatement_ offset_end intint Se la classe è un modulo, indica la posizione finale dell'utilizzo non contenuto partendo da 0. Il valore viene espresso in byte.If the class is a module, indicates, in bytes, starting with 0, the ending position of the uncontained use. Il valore -1 indica la fine del modulo.A value of -1 indicates the end of the module. In caso contrario, il valore restituito è Null.Otherwise the return value is null.
statement_typestatement_type nvarchar(512)nvarchar(512) Tipo di istruzione.The type of statement.
nome feature_feature_ name nvarchar(256)nvarchar(256) Restituisce il nome esterno dell'oggetto.Returns the external name of the object.
feature_type_namefeature_type_name nvarchar(256)nvarchar(256) Restituisce il tipo di funzionalità.Returns the type of feature.

OsservazioniRemarks

Sys.dm db_uncontained_entities Mostra le entità che potenzialmente possono superare il limite del database.sys.dm_db_uncontained_entities shows those entities which can potentially cross the database boundary. Restituirà le entità utente che possono utilizzare gli oggetti al di fuori del database.It will return any user entities that have the potential to use objects outside of the database.

I tipi di funzionalità seguenti vengono segnalati.The following feature types are reported.

  • Comportamento di indipendenza sconosciuto (SQL dinamico o risoluzione dei nomi posticipata)Unknown containment behavior (dynamic SQL or deferred name resolution)

  • Comando DBCCDBCC command

  • Stored procedure di sistemaSystem stored procedure

  • Funzione scalare di sistemaSystem scalar function

  • Funzione con valori di tabella di sistemaSystem table valued function

  • Funzione predefinita di sistemaSystem built-in function

SicurezzaSecurity

AutorizzazioniPermissions

Sys.dm db_uncontained_entities restituisce solo gli oggetti per cui l'utente dispone di un tipo di autorizzazione.sys.dm_db_uncontained_entities only returns objects for which the user has some type of permission. Per l'indipendenza del database, questa funzione deve essere utilizzata da un utente con privilegi elevati, ad esempio un membro di una valutazione completa di sysadmin ruolo predefinito del server o db_owner ruolo.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.

EsempiExamples

Nell'esempio seguente viene creata una procedura denominata P1, quindi viene eseguita una query su sys.dm_db_uncontained_entities.The following example creates a procedure named P1, and then queries sys.dm_db_uncontained_entities. Nella query viene segnalato che P1 utilizza sys.endpoints , che si trova all'esterno del database.The query reports that P1 uses sys.endpoints which is outside of the database.

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;  

Vedere ancheSee Also

Database indipendentiContained Databases