Condividi tramite


sys.dm_db_uncontained_entities (Transact-SQL)

Mostra qualsiasi oggetto non contenuto utilizzato nel database. Gli oggetti non contenuti sono oggetti che superano il limite del database in un database indipendente. Questa vista è accessibile sia da un database indipendente che da un database non indipendente. Se sys.dm_db_uncontained_entities è vuoto, il database non utilizza entità non contenute.

Se un modulo supera il limite del database più di una volta, viene riportato solo il primo superamento individuato.

Nome colonna

Tipo

Descrizione

class

int

1 = Oggetto o colonna (include moduli, XP, viste, sinonimi e tabelle).

4 = Entità di database

5 = Assembly

6 = Tipo

7 = Indice (indice full-text)

12 = Trigger DDL database

19 = Route

30 = Specifica del controllo

class_desc

nvarchar(120)

Descrizione della classe dell'entità. Uno dei valori seguenti in base alla classe.

  • OBJECT_OR_COLUMN

  • DATABASE_PRINCIPAL

  • ASSEMBLY

  • TYPE

  • INDEX

  • DATABASE_DDL_TRIGGER

  • ROUTE

  • AUDIT_SPECIFICATION

major_id

int

ID dell'entità.

Se class = 1, object_id

Se class = 4, sys.database_principals.principal_id.

Se class = 5, sys.assemblies.assembly_id.

Se class = 6, sys.types.user_type_id.

Se class = 7, sys.indexes.index_id.

Se class = 12, sys.triggers.object_id.

statement_line_number

int

Se la classe è un modulo, restituisce il numero di riga in cui si trova l'utilizzo non contenuto. In caso contrario, il valore è Null.

statement_ offset_begin

int

Se la classe è un modulo, indica la posizione iniziale dell'utilizzo non contenuto partendo da 0. Il valore viene espresso in byte. In caso contrario, il valore restituito è Null.

statement_ offset_end

int

Se la classe è un modulo, indica la posizione finale dell'utilizzo non contenuto partendo da 0. Il valore viene espresso in byte. Il valore -1 indica la fine del modulo. In caso contrario, il valore restituito è Null.

statement_type

nvarchar(512)

Tipo di istruzione.

feature_ name

nvarchar(256)

Restituisce il nome esterno dell'oggetto.

feature_type_name

nvarchar(256)

Restituisce il tipo di funzionalità.

Osservazioni

sys.dm_db_uncontained_entities mostra le entità che potenzialmente possono superare il limite del database. Restituirà le entità utente che possono utilizzare gli oggetti al di fuori del database.

I tipi di funzionalità seguenti vengono segnalati.

  • Comportamento di indipendenza sconosciuto (SQL dinamico o risoluzione dei nomi posticipata)

  • Comando DBCC

  • Stored procedure di sistema

  • Funzione scalare di sistema

  • Funzione con valori di tabella di sistema

  • Funzione predefinita di sistema

Sicurezza

Autorizzazioni

sys.dm_db_uncontained_entities restituisce solo oggetti per cui l'utente dispone di un qualsiasi tipo di autorizzazione. Per una valutazione completa dell'indipendenza del database, questa funzione deve essere utilizzata da un utente con privilegi elevati, ad esempio un membro del ruolo predefinito del server sysadmin o del ruolo db_owner.

Esempi

Nell'esempio seguente viene creata una procedura denominata P1, quindi viene eseguita una query su sys.dm_db_uncontained_entities. Nella query viene segnalato che P1 utilizza sys.endpoints, che si trova all'esterno del 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 anche

Concetti

Database indipendenti