sys.dm_db_uncontained_entities (Transact-SQL)

Aplica-se a: SQL Server

Mostra quaisquer objetos não contidos usados na base de dados. Objetos não contidos são objetos que atravessam o limite da base de dados numa base de dados contida. Esta perspetiva é acessível tanto a partir de uma base de dados contida como de uma base de dados não contida. Se sys.dm_db_uncontained_entities estiver vazia, a tua base de dados não utiliza entidades não contidas.

Se um módulo ultrapassar o limite da base de dados mais do que uma vez, apenas o primeiro cruzamento descoberto é reportado.

Nome da coluna Type Descrição
classe int 1 = Objeto ou coluna (inclui módulos, XPs, vistas, sinónimos e tabelas).

4 = Principal da Base de Dados

5 = Montagem

6 = Tipo

7 = Índice (Índice do Texto Completo)

12 = Gatilho DDL da Base de Dados

19 = Percurso

30 = Especificação de Auditoria
class_desc Nvarchar(120) Descrição da classe da entidade. Um dos seguintes para corresponder à classe:

OBJECT_OR_COLUMN

DATABASE_PRINCIPAL

ASSEMBLY

TYPE

INDEX

DATABASE_DDL_TRIGGER

ROUTE

AUDIT_SPECIFICATION
major_id int ID da entidade.

Se classe = 1, então object_id

Se class = 4, então sys.database_principals.principal_id.

Se classe = 5, então sys.assemblies.assembly_id.

Se classe = 6, então sys.types.user_type_id.

Se classe = 7, então sys.indexes.index_id.

Se classe = 12, então sys.triggers.object_id.

Se classe = 19, então sys.routes.route_id.

Se class = 30, então sys. database_audit_specifications.database_specification_id.
statement_line_number int Se a classe for um módulo, devolve o número de linha onde o uso não contido está localizado. Caso contrário, o valor é nulo.
statement_ offset_begin int Se a classe for um módulo, indica, em bytes, começando com 0, a posição inicial onde o uso não contido começa. Caso contrário, o valor de retorno é nulo.
statement_ offset_end int Se a classe for um módulo, indica, em bytes, começando com 0, a posição final do uso não contido. Um valor de -1 indica o fim do módulo. Caso contrário, o valor de retorno é nulo.
statement_type nvarchar(512) O tipo de afirmação.
feature_ nome nvarchar(256) Devolve o nome externo do objeto.
feature_type_name nvarchar(256) Devolve o tipo de funcionalidade.

Remarks

sys.dm_db_uncontained_entities mostra as entidades que podem potencialmente atravessar o limite da base de dados. Devolverá quaisquer entidades utilizadoras que tenham potencial para usar objetos fora da base de dados.

Os seguintes tipos de características são reportados.

  • Comportamento de contenção desconhecido (SQL dinâmico ou resolução diferida de nomes)

  • Comando DBCC

  • Procedimento armazenado do sistema

  • Função escalar do sistema

  • Função com valores em tabela de sistema

  • Função incorporada no sistema

Segurança

Permissions

sys.dm_db_uncontained_entities apenas devolve objetos para os quais o utilizador tem algum tipo de permissão. Para avaliar totalmente a contenção da base de dados, esta função deve ser utilizada por um utilizador com privilégios elevados, como um membro do sysadmin, função fixa de servidor ou função db_owner .

Examples

O exemplo seguinte cria um procedimento chamado P1, e depois consulta sys.dm_db_uncontained_entities. A consulta indica que o P1 utiliza sys.endpoints , que está fora da base de dados.

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;  

Ver também

Bases de dados contidas