sys.dm_sql_referenced_entities (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Gibt eine Zeile für jede benutzerdefinierte Entität zurück, auf die in der Definition der angegebenen verweisenden Entität in SQL Server anhand des Namens verwiesen wird. Eine Abhängigkeit zwischen zwei Entitäten wird erstellt, wenn eine benutzerdefinierte Entität, die als referenzierte Entität bezeichnet wird, nach Namen in einem dauerhaften SQL-Ausdruck einer anderen benutzerdefinierten Entität angezeigt wird, die als referenzierende Entität bezeichnet wird. Handelt es sich beispielsweise bei einer gespeicherten Prozedur um die angegebene verweisende Entität, gibt diese Funktion alle benutzerdefinierten Entitäten zurück, auf die die gespeicherte Prozedur verweist, z. B. Tabellen, Sichten, benutzerdefinierte Typen (UDTs) oder andere gespeicherte Prozeduren.

Verwenden Sie diese dynamische Verwaltungsfunktion, um zu folgenden Entitätstypen, auf die in der verweisenden Entität verwiesen wird, einen Bericht zu erstellen.

  • Schemagebundene Entitäten

  • Nicht schemagebundene Entitäten

  • Datenbankübergreifende und serverübergreifende Entitäten

  • Abhängigkeiten auf Spaltenebene von schemagebundenen und nicht schemagebundenen Entitäten

  • Benutzerdefinierte Typen (Alias und CLR UDT)

  • XML-Schemaauflistungen

  • Partitionsfunktionen

Syntax

sys.dm_sql_referenced_entities (  
    ' [ schema_name. ] referencing_entity_name ' ,
    ' <referencing_class> ' )  
  
<referencing_class> ::=  
{  
    OBJECT  
  | DATABASE_DDL_TRIGGER  
  | SERVER_DDL_TRIGGER  
}  

Argumente

[ schema_name. ] referencing_entity_name
Der Name der verweisenden Entität. schema_name ist erforderlich, wenn die referenzierende Klasse OBJECT ist.

schema_name.referencing_entity_name ist nvarchar(517).

< > referencing_class ::= { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER }
Klasse der angegebenen verweisenden Entität. Pro Anweisung kann nur eine Klasse angegeben werden.

< > referencing_class ist nvarchar(60).

Zurückgegebene Tabelle

Spaltenname Datentyp Beschreibung
referencing_minor_id int Die Spalten-ID, wenn es sich bei der verweisenden Entität um eine Spalte handelt. Andernfalls ist der Wert 0. Lässt keine NULL-Werte zu.
referenced_server_name sysname Servername der Entität, auf die verwiesen wird.

Diese Spalte wird für serverübergreifende Abhängigkeiten aufgefüllt, die auf der Angabe eines gültigen vierteiligen Namens basieren. Informationen zu mehrteiligen Namen finden Sie unter Transact-SQL-Syntaxkonventionen.

NULL für nicht schemagebundene Abhängigkeiten, für die ohne Angabe eines vierteiligen Namens auf die Entität verwiesen wurde.

NULL für schemagebundene Entitäten, da sich diese in derselben Datenbank befinden müssen und deshalb nur mit einem zweiteiligen Namen (schema.object) definiert werden können.
referenced_database_name sysname Datenbankname der Entität, auf die verwiesen wird.

Diese Spalte wird für datenbankübergreifende oder serverübergreifende Verweise aufgefüllt, die auf der Angabe eines gültigen dreiteiligen oder vierteiligen Namens basieren.

NULL für nicht schemagebundene Verweise, wenn auf Basis eines einteiligen oder zweiteiligen Namens angegeben.

NULL für schemagebundene Entitäten, da sich diese in derselben Datenbank befinden müssen und deshalb nur mit einem zweiteiligen Namen (schema.object) definiert werden können.
referenced_schema_name sysname Schema, in das die Entität gehört, auf die verwiesen wird.

NULL für nicht schemagebundene Verweise, in denen ohne Angabe des Schemanamens auf die Entität verwiesen wird.

Niemals NULL für schemagebundene Verweise.
referenced_entity_name sysname Name der Entität, auf die verwiesen wird. Lässt keine NULL-Werte zu.
referenced_minor_name sysname Der Spaltenname, wenn es sich bei der Entität, auf die verwiesen wird, um eine Spalte handelt. Andernfalls ist der Wert NULL. Beispielsweise hat referenced_minor_name den Wert NULL in der Zeile, in der die Entität, auf die verwiesen wird, selbst aufgeführt wird.

Eine Entität, auf die verwiesen wird, ist eine Spalte, wenn diese in der verweisenden Entität namentlich identifiziert wird oder wenn die übergeordnete Entität in einer SELECT *-Anweisung verwendet wird.
referenced_id int ID der Entität, auf die verwiesen wird. Wenn referenced_minor_id nicht 0 ist, ist referenced_id die Entität, in der die Spalte definiert wird.

Immer NULL für serverübergreifende Verweise.

NULL für datenbankübergreifende Verweise, wenn die ID nicht bestimmt werden kann, weil die Datenbank offline ist oder die Entität nicht gebunden werden kann.

NULL für Verweise innerhalb der Datenbank, wenn die ID nicht bestimmt werden kann. Bei nicht schemagebundenen Verweisen kann die ID nicht aufgelöst werden, wenn die referenzierte Entität nicht in der Datenbank vorhanden ist oder die Namensauflösung vom Aufrufer abhängig ist. Im letzteren Fall ist is_caller_dependent auf 1 festgelegt.

Niemals NULL für schemagebundene Verweise.
referenced_minor_id int Die Spalten-ID, wenn es sich bei der Entität, auf die verwiesen wird, um eine Spalte handelt. Andernfalls ist der Wert 0. Beispielsweise hat referenced_minor_is den Wert NULL in der Zeile, in der die Entität, auf die verwiesen wird, selbst aufgeführt wird.

Für nicht schemagebundene Verweise werden Spaltenabhängigkeiten nur gemeldet, wenn alle Entitäten, auf die verwiesen wird, gebunden werden können. Kann eine der Entitäten, auf die verwiesen wird, nicht gebunden werden, werden keine Abhängigkeiten auf Spaltenebene gemeldet, und referenced_minor_id wird auf 0 gesetzt. Siehe Beispiel D.
referenced_class tinyint Klasse der Entität, auf die verwiesen wird.

1 = Objekt oder Spalte

6 = Typ

10 = XML-Schemaauflistung

21 = Partitionsfunktion
referenced_class_desc nvarchar(60) Klassenbeschreibung der Entität, auf die verwiesen wird.

OBJECT_OR_COLUMN

TYPE

XML_SCHEMA_COLLECTION

PARTITION_FUNCTION
is_caller_dependent bit Gibt an, dass die Schemabindung für die Entität, auf die verwiesen wird, zur Laufzeit erfolgt. Deshalb hängt die Auflösung der Entitäts-ID vom Schema des Aufrufers ab. Dies ist der Fall, wenn es sich bei der Entität, auf die verwiesen wird, um eine gespeicherte Prozedur, eine erweiterte gespeicherte Prozedur oder um eine benutzerdefinierte Funktion handelt, die in einer EXECUTE-Anweisung aufgerufen wird.

1 = Die Entität, auf die verwiesen wird, hängt vom Aufrufer ab und wird zur Laufzeit aufgelöst. In diesem Fall ist referenced_id gleich NULL.

0 = Die Entitäts-ID, auf die verwiesen wird, ist nicht aufruferabhängig. Immer 0 für schemagebundene Verweise sowie für datenbankübergreifende und serverübergreifende Verweise, die explizit einen Schemanamen angeben. Zum Beispiel ist ein Verweis auf eine Entität im Format EXEC MyDatabase.MySchema.MyProc nicht aufruferabhängig. Ein Verweis im Format EXEC MyDatabase..MyProc ist jedoch aufruferabhängig.
is_ambiguous bit Weist darauf hin, dass es sich um einen mehrdeutigen Verweis handelt, der zur Laufzeit in eine benutzerdefinierte Funktion, in einen benutzerdefinierten Typ (UDT) oder in einen XQuery-Verweis auf eine Spalte des Datentyps xml aufgelöst werden kann. Angenommen, die SELECT Sales.GetOrder() FROM Sales.MySales-Anweisung ist in einer gespeicherten Prozedur definiert. Bis zur Ausführung der gespeicherten Prozedur ist unbekannt, ob Sales.GetOrder() eine benutzerdefinierte Funktion im Schema Sales oder in der Spalte namens Sales vom Typ UDT mit einer Methode namens GetOrder() ist.

1 = Verweis auf eine benutzerdefinierte Funktion oder Spalte, für die die benutzerdefinierte Typmethode (UDT) mehrdeutig ist.

0 = Verweis ist eindeutig, oder die Entität kann beim Aufruf der Funktion erfolgreich gebunden werden.

Immer 0 für schemagebundene Verweise.
is_selected bit 1 = Gibt an, dass das O