sys.dm_db_uncontained_entities (Transact-SQL)

platí pro:SQL Server

Zobrazuje všechny neomezené objekty použité v databázi. Neomezené objekty jsou objekty, které překračují hranici databáze v uzavřené databázi. Tento pohled je přístupný jak z uzavřené databáze, tak z neuzavřené databáze. Pokud je sys.dm_db_uncontained_entities prázdná, vaše databáze nepoužívá žádné neomezené entity.

Pokud modul překročí hranici databáze více než jednou, je hlášen pouze první objevený průchod.

Název sloupce Type popis
class int 1 = Objekt nebo sloupec (zahrnuje moduly, XP, pohledy, synonyma a tabulky).

4 = objekt zabezpečení databáze

5 = sestavení

6 = Typ

7 = Index (Full-text Index)

12 = Databázový DDL spouštěč

19 = Trasa

30 = Specifikace auditu
class_desc nvarchar(120) Popis třídy entity. Jedna z následujících modelů, která odpovídá třídě:

OBJECT_OR_COLUMN

DATABASE_PRINCIPAL

ASSEMBLY

TYPE

INDEX

DATABASE_DDL_TRIGGER

ROUTE

AUDIT_SPECIFICATION
major_id int ID entity.

Pokud třída = 1, pak object_id

Pokud class = 4, pak sys.database_principals.principal_id.

Pokud třída = 5, pak sys.assemblies.assembly_id.

Pokud třída = 6, pak sys.types.user_type_id.

Pokud třída = 7, pak sys.indexes.index_id.

Pokud třída = 12, pak sys.triggers.object_id.

Pokud třída = 19, pak sys.routes.route_id.

Pokud třída = 30, pak sys. database_audit_specifications.database_specification_id.
statement_line_number int Pokud je třída modul, vrátí číslo řádku, na kterém se nachází neomezené použití. Jinak je hodnota nulová.
statement_ offset_begin int Pokud je třída modul, označuje v bajtech začínající na 0 výchozí pozici, kde začíná neomezené použití. Jinak je návratová hodnota nulová.
statement_ offset_end int Pokud je třída modul, označuje v bajtech, začínajících na 0, konečnou pozici neomezeného použití. Hodnota -1 označuje konec modulu. Jinak je návratová hodnota nulová.
statement_type nvarchar(512) Typ prohlášení.
feature_ jméno nvarchar(256) Vrátí vnější název objektu.
feature_type_name nvarchar(256) Vrací typ funkce.

Poznámky

sys.dm_db_uncontained_entities ukazuje ty entity, které mohou potenciálně překročit hranici databáze. Vrátí všechny uživatelské entity, které mají potenciál používat objekty mimo databázi.

Jsou uvedeny následující typy funkcí.

  • Neznámé chování zadržení (dynamické SQL nebo odložené řešení názvu)

  • Velení DBCC

  • Systémová uložená procedura

  • Systémová skalární funkce

  • Systémová tabulková funkce

  • Vestavěná funkce systému

Zabezpečení

Povolení

sys.dm_db_uncontained_entities vrací pouze objekty, pro které má uživatel nějaké oprávnění. Pro úplné vyhodnocení obsahu databáze by tuto funkci měl používat uživatel s vyššími privilegiami, například člen role pevného serveru správce systému nebo role db_owner .

Examples

Následující příklad vytváří proceduru nazvanou P1 a poté dotazuje sys.dm_db_uncontained_entities. Dotaz uvádí, že P1 používá sys.endpoints , což je mimo databázi.

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;