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:
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. |