Udostępnij za pośrednictwem


sys.dm_sql_referenced_entities (Transact-SQL)

Zwraca jeden wiersz dla każdego użytkownika obiekt odwołuje się nazwa w określonym odwoływania się do definicji obiekt.Zależność między dwoma obiektami jest tworzony podczas jednego obiektu użytkownika, o nazwie obiekt odwołaniapojawia się nazwa w wyrażeniu SQL utrwalonej kolejną jednostką zdefiniowaną przez użytkownika o nazwie ,Odwołanie do obiektu.Na przykład, jeśli procedura przechowywana jest określony odwoływania się do obiekt, ta funkcja zwraca wszystkie obiekty zdefiniowane przez użytkownika, do których istnieją odwołania w procedurze przechowywanej, takie jak tabele, widoki, typy zdefiniowane przez użytkownika (UDTs) lub inne przechowywane procedury.

Raporty dotyczące następujących typów obiektów zawiera odwołanie do określonego referencing za pomocą tej funkcja dynamicznego zarządzania obiekt:

  • Podmioty związanych ze schematem

  • Podmioty nie związane schematu

  • Bazy danych poza granice i granic serwera obiektów

  • Kolumna poziom zależności obiektów związanych ze schematem i nie związanych ze schematem

  • W przypadku typów zdefiniowanych przez użytkownika (alias i CLR UDT)

  • Kolekcje schematu XML

  • Funkcje partycji

sys.dm_sql_referenced_entities (
        ' [ schema_name. ] referencing_entity_name ' , ' <referencing_class> ' )

<referencing_class> ::=
{
    OBJECT
  | DATABASE_DDL_TRIGGER
  | SERVER_DDL_TRIGGER
}

Argumenty

  • [ schema_name. ] referencing_entity_name
    Is the name of the referencing entity.schema_name is required when the referencing class is OBJECT.

    schema_name.referencing_entity_name jest nvarchar(517).

  • <referencing_class> :: = {OBIEKTU | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER}
    Jest to klasa określona referencing obiekt.Tylko jednej klasy mogą być określone dla każdego sprawozdania.

    <referencing_class> jest nvarchar(60).

Zwracana tabela

Nazwa kolumna

Typ danych

Description

referencing_minor_id

int

Kolumna IDENTYFIKATORA, kiedy odwołujących się obiekt kolumny; w przeciwnym razie 0.Nie jest pustych.

referenced_server_name

sysname

Nazwa serwera, z której dotyczy odwołanie, obiekt.

Ta kolumna jest pusta dla zależności między serwerem, które są wykonywane przez określenie four-part poprawną nazwę.Aby uzyskać informacje na temat wieloczęściowe nazw Zobacz Transact-SQL Syntax Conventions (Transact-SQL).

Wartość NULL, dla których obiekt wystąpiło odwołanie do bez określania nazwy four-part zależności nie związanych ze schematem.

NULL dla obiektów związanych ze schematem, ponieważ muszą być w tej samej bazy danych i dlatego mogą być definiowane tylko przy użyciu (część 2Schema.Object) Nazwa.

referenced_database_name

sysname

Nazwa bazy danych, z której dotyczy odwołanie, obiekt.

Ta kolumna jest pusta dla bazy danych między lub między serwerem odwołań, które są wykonywane przez określenie prawidłową nazwę trzech części lub four-part.

Wartość NULL dla odwołania nie związanych ze schematem, gdy określona za pomocą nazwy część jednego lub dwóch części.

NULL dla obiektów związanych ze schematem, ponieważ muszą być w tej samej bazy danych i dlatego mogą być definiowane tylko przy użyciu (część 2Schema.Object) Nazwa.

referenced_schema_name

sysname

Schemat, do której należy obiekt do którego istnieje odwołanie.

Wartość NULL dla odwołań innych niż związanych ze schematem, w którym obiekt wystąpiło odwołanie do bez określania nazwy schematu.

Nigdy nie NULL odwołania związanych ze schematem.

referenced_entity_name

sysname

Nazwa odwołania obiekt.Nie jest pustych.

referenced_minor_name

sysname

Nazwa kolumna, kiedy odwołania obiekt jest kolumna; w przeciwnym razie NULL.Na przykład referenced_minor_name ma wartość NULL w wierszu, który zawiera listę odwołania obiekt samego siebie.

Odwołania encji jest kolumną, gdy kolumna jest identyfikowany przez nazwę obiekt odwołujący się lub gdy obiekt nadrzędna jest używany w SELECT * instrukcja.

referenced_id

int

Identyfikator odwołania obiekt.Gdy referenced_minor_id nie referenced_id 0, jest obiekt, w którym jest zdefiniowana kolumna.

Zawsze NULL dla odwołania do wielu serwerów.

Wartość NULL dla bazy danych między odwołaniami, gdy nie można określić identyfikator, ponieważ baza danych jest w trybie offline lub obiekt nie może być powiązane.

Wartość NULL dla odwołania do bazy danych, jeśli nie można określić identyfikator.Dla odwołania do innych niż związanych ze schematem identyfikator nie jest rozpoznawany w następujących przypadkach:

  • obiekt odwołania nie istnieje w bazie danych.

  • Rozpoznawanie nazw jest zależne od rozmówcy.W takim przypadek jest is_caller_dependent zestaw na 1.

Nigdy nie NULL odwołania związanych ze schematem.

referenced_minor_id

int

Kolumna IDENTYFIKATORA, kiedy odwołania obiekt jest kolumną; 0 w przeciwnym razie.Na przykład referenced_minor_is wynosi 0, w wierszu, który zawiera listę odwołania obiekt samego siebie.

Odwołania do innych niż związanych ze schematem zależności kolumna są zgłaszane tylko wtedy, gdy wszystkie wskazane obiekty mogą być powiązane.Jeśli istnieje odwołanie do obiekt nie może być powiązane, zależności poziomie kolumna nie są raportowane i referenced_minor_id wynosi 0.Zobacz przykład D.

referenced_class

tinyint

Klasa odwołania obiekt.

1 = Obiektu lub kolumna

6 = Typ

10 = kolekcja schematu XML

21 = funkcja partycji

referenced_class_desc

nvarchar(60)

Opis klasy odwołuje się do obiekt.

OBJECT_OR_COLUMN

TYP

XML_SCHEMA_COLLECTION

PARTITION_FUNCTION

is_caller_dependent

bit

Wskazuje wiązanie schematu dla obiekt odwołania występuje przy uruchomieniu czas; dlatego rozdzielczość obiekt identyfikator zależy od schematu obiektu wywołującego.W takiej sytuacji, gdy odwołania obiekt procedury przechowywanej, rozszerzone procedury przechowywanej lub funkcja zdefiniowanej przez użytkownika jest wywoływana w ramach instrukcja wykonać.

1 = Odwołania encji jest zależne od rozmówcy i został rozwiązany przy uruchomieniu czas.W takim przypadek referenced_id jest NULL.

0 = Odwołania obiekt Identyfikator nie jest zależne od rozmówcy.Zawsze 0 dla związanych ze schematem odwołuje się do dla bazy danych między i między serwerem odwołuje, jawnie określić nazwę schematu.Na przykład, odwołanie do obiekt w formacie EXEC MyDatabase.MySchema.MyProc jest niezależna obiektu wywołującego. Jednak odwołanie w formacie EXEC MyDatabase..MyProc obiekt wywołujący jest zależna.

is_ambiguous

bit

Wskazuje odwołanie jest niejednoznaczny i można rozwiązać w czasie wykonywania funkcja zdefiniowanej przez użytkownika, typ zdefiniowany przez użytkownika (UDT) lub odwołaniem do kolumna typu xquery xml. Załóżmy na przykład, instrukcja SELECT Sales.GetOrder() FROM Sales.MySales jest zdefiniowany w procedurze przechowywanej. Dopóki nie zostanie wykonana procedura przechowywana, nie wiadomo, czy Sales.GetOrder() jest to funkcja zdefiniowana przez użytkownika w Sales schemat lub kolumna o nazwie Sales typu UDT z metoda o nazwie GetOrder().

1 = Odwołanie do kolumna lub funkcja zdefiniowanej przez użytkownika typ zdefiniowany przez użytkownika metoda (UDT) jest niejednoznaczna.

0 = Odwołanie jest jednoznaczny lub obiekt może być pomyślnie powiązany po wywołaniu funkcja.

Zawsze 0 odwołania związanych ze schematem.

Exceptions

Zwraca puste wynik pod jeden z następujących warunków:

  • Określono obiekt systemu.

  • Określony obiekt nie istnieje w bieżącej bazie danych.

  • Określony obiekt nie odwołuje się jednostek z nią.

  • Nieprawidłowy parametr jest przekazywany.

Zwraca błąd, po określonym referencing obiekt są numerowane procedura przechowywana.

Zwraca błąd 2020, gdy nie można rozpoznać zależności kolumna.Ten błąd nie uniemożliwia kwerenda zwraca poziom obiekt zależności.Aby uzyskać więcej informacji zobaczTroubleshooting SQL Dependencies.

Remarks

Ta funkcja może być wykonane w odniesieniu do każdej innej bazy danych do zwrócenia podmiotów tego wyzwalacz DLL odwołanie poziom serwera.

W poniższej tabela wymieniono rodzaje obiektów, dla którego informacje o zależnościach są tworzone i obsługiwane.Informacje o zależnościach nie jest tworzone lub obsługiwane dla reguły, ustawienia domyślne, tabele tymczasowe, tymczasowe procedury przechowywane lub obiektów systemu.

obiekt typu

Odwoływanie się do obiekt

obiekt odwołania

Table

Tak *

Tak

Bez opuszczania środowiska, można zarządzać sieci fizycznej i łatwo zespołów projektów.

Tak

Tak

Transact-SQL Procedura przechowywana **

Tak

Tak

składowana procedura CLR

Nie

Tak

Transact-SQL funkcja zdefiniowanej przez użytkownika

Tak

Tak

Środowisko CLR funkcja zdefiniowanej przez użytkownika

Nie

Tak

wyzwalacz CLR (DML i DDL)

Nie

Nie

Transact-SQL Wyzwalacz DML

Tak

Nie

Transact-SQL wyzwalacz DLL poziom bazy danych

Tak

Nie

Transact-SQL poziom serwera DDL wyzwalacza

Tak

Nie

Rozszerzone procedury przechowywane

Nie

Tak

Kolejki

Nie

Tak

Synonim

Nie

Tak

Typ (alias i zdefiniowany przez użytkownika typ danych CLR)

Nie

Tak

kolekcja schematu XML

Nie

Tak

Funkcja partycji

Nie

Tak

* tabela jest śledzony jako odwoływania się do obiekt tylko wtedy, gdy się odwołuje Transact-SQL Moduł, typ zdefiniowany przez użytkownika lub kolekcja schematu XML w definicji kolumna obliczana, ograniczenia CHECK lub DEFAULT ograniczenie.

** Numerowane procedur przechowywanych z wartością całkowitą większą niż 1 nie są śledzone jako jednej obiekt odwołujący się lub do którego istnieje odwołanie.

Aby uzyskać więcej informacji zobaczUnderstanding SQL Dependencies.

Uprawnienia

Wymaga uprawnieniami definicja VIEW w odwołujących się i uprawnienie SELECT sys.dm_sql_referenced_entities obiekt.Domyślnie uprawnienie SELECT jest przyznawane publicznego.Wymaga definicja VIEW uprawnień w bazie danych lub ALTER DATABASE wyzwalacz DLL uprawnień w bazie danych, gdy podmiot odwołujący się jest wyzwalacz DLL poziom bazy danych.Wymaga VIEW definicja bez uprawnień na serwerze po odwołujących się obiekt jest wyzwalacz DLL poziomie serwera.

Przykłady

A.Zwracanie obiektów, do których odwołuje się wyzwalacz DLL poziom bazy danych

W poniższym przykładzie są zwracane obiektów (tabel i kolumn), do których odwołuje się wyzwalacz DLL poziom bazy danych ddlDatabaseTriggerLog.

B.Zwracanie obiektów, do których odwołuje się obiekt

W poniższym przykładzie są zwracane obiekty, które odwołuje się funkcja zdefiniowana przez użytkownika dbo.ufnGetContactInformation.

C.Zwracanie zależności kolumna

Poniższy przykład tworzy w tabela Table1 kolumna obliczana c zdefiniowane jako sumę kolumny a i b. The sys.dm_sql_referenced_entities view is then called.W widoku zwraca dwa wiersze, jeden dla każdej z kolumn określonych kolumna obliczana.

Here is the result set.

schema_name nazwa_tabeli referenced_column referencing_column

----------- ---------- ----------------- ------------------

dbo Tabela1 a c

dbo Tabela1 b c

D.Zwracanie zależności kolumn innych niż związanych ze schematem

W poniższym przykładzie spadnie Table1 i tworzy Table2 i procedura przechowywana Proc1. Odwołania do procedury Table2 i nieistniejącej tabela Table1. W widoku sys.dm_sql_referenced_entities jest uruchamiany z procedurą przechowywaną określone w odwołujących się obiekt. Zestaw wyników zawiera jeden wiersz Table1 i Table2. Ponieważ Table1 nie istnieje, zależności kolumna nie można rozpoznać i zwracany jest błąd 2020.

E.Przedstawiającą zależność dynamicznej obsługi technicznej

W poniższym przykładzie rozszerza przykład D, aby wyświetlić zależności są zachowywane dynamicznie.W przykładzie najpierw odtwarza. Table1, który został usunięty przykład D. Następnie sys.dm_sql_referenced_entities Uruchom ponownie z procedura przechowywana określony jako odwołujący się obiektu. Pokazuje, że zwracane są zarówno tabele, jak i odpowiednich kolumnach określone w procedurze przechowywanej zestaw wyników.

Here is the result set.

referenced_id nazwa_tabeli, nazwa_kolumny

-------------  ----------- -----------

2139154566 Tabela1 NULL

2139154566 Tabela1

2139154566 Tabela1 b

2139154566 Tabela1 c

2707154552 Tabela2 NULL

2707154552 Tabela2 c1

2707154552 Tabela2 c2

Historia zmian

Microsoft Learning

W instrukcja "zależności kolumna nie są śledzone dla funkcji wycenione tabela CLR" usunięte z częścią Uwagi.

Poprawiono typu danych referencing_entity_name parametr.