Freigeben über


Anzeigen benutzerdefinierter Funktionen

Sie können Informationen zur Definition oder zu den Eigenschaften einer benutzerdefinierten Funktion in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL abrufen. Manchmal ist es erforderlich, die Definition einer Funktion anzuzeigen, um zu verstehen, wie die Daten der Funktion aus den Quelltabellen abgeleitet werden, oder um die durch die Funktion definierten Daten anzuzeigen.

Wichtiger HinweisWichtig

Wenn Sie den Namen eines Objekts ändern, auf das eine Funktion verweist, müssen Sie den Text dieser Funktion mit dem neuen Namen aktualisieren. Bevor Sie ein Objekt umbenennen, sollten Sie daher erst die Abhängigkeiten des Objekts anzeigen, um feststellen zu können, ob Funktionen von der beabsichtigten Änderung betroffen sind.

In diesem Thema

  • Vorbereitungen:

    Sicherheit

  • Abrufen von Informationen zu einer Funktion mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Sicherheit

Berechtigungen

Das Anzeigen aller Abhängigkeiten einer Funktion mithilfe von sys.sql_expression_dependencies erfordert die VIEW DEFINITION-Berechtigung für die Datenbank und die SELECT-Berechtigung für sys.sql_expression_dependencies für die Datenbank. Systemobjektdefinitionen, wie die in OBJECT_DEFINITION zurückgegebenen Definitionen, sind öffentlich sichtbar.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So zeigen Sie die Eigenschaften einer benutzerdefinierten Funktion an

  1. Klicken Sie im Objekt-Explorer auf das Pluszeichen neben der Datenbank mit der Funktion, deren Eigenschaften Sie anzeigen möchten, und klicken Sie dann auf das Pluszeichen, um den Ordner Programmierbarkeit zu erweitern.

  2. Klicken Sie auf das Pluszeichen, um den Ordner Funktionen zu erweitern.

  3. Klicken Sie auf das Pluszeichen, um den Ordner mit der Funktion zu erweitern, deren Eigenschaften Sie anzeigen möchten:

    • Tabellenwertfunktion

    • Skalarwertfunktion

    • Aggregatfunktion

  4. Klicken Sie mit der rechten Maustaste auf die Funktion, deren Eigenschaften Sie anzeigen möchten, und wählen Sie Eigenschaften aus.

    Die folgenden Eigenschaften werden im Dialogfeld Funktionseigenschaften – function_name angezeigt.

    • Datenbank
      Name der Datenbank, die diese Funktion enthält.

    • Server
      Name der aktuellen Serverinstanz.

    • Benutzer
      Name des Benutzers dieser Verbindung.

    • Erstellt am
      Zeigt das Datum an, an dem die Funktion erstellt wurde.

    • Ausführen als
      Ausführungskontext für die Funktion.

    • Name
      Name der aktuellen Funktion.

    • Schema
      Zeigt das Schema an, zu dem die Funktion gehört.

    • Systemobjekt
      Gibt an, ob es sich bei der Funktion um ein Systemobjekt handelt. Die Werte sind True und False.

    • ANSI NULLS
      Gibt an, ob das Objekt mit der Option ANSI NULLS erstellt wurde.

    • Verschlüsselt
      Gibt an, ob die Funktion verschlüsselt ist. Die Werte sind True und False.

    • Funktionstyp
      Typ der benutzerdefinierten Funktion.

    • Bezeichner in Anführungszeichen
      Gibt an, ob das Objekt mit der Option Bezeichner in Anführungszeichen erstellt wurde.

    • Schema-gebunden
      Gibt an, ob die Funktion Schema-gebunden ist. Die Werte sind True und False. Informationen zu schemagebundenen Funktionen finden Sie im Abschnitt SCHEMABINDING von CREATE FUNCTION (Transact-SQL).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So rufen Sie die Definition und die Eigenschaften einer Funktion ab

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie eines der folgenden Beispiele, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    USE AdventureWorks2012;
    GO
    -- Get the function name, definition, and relevant properties
    SELECT sm.object_id, 
       OBJECT_NAME(sm.object_id) AS object_name, 
       o.type, 
       o.type_desc, 
       sm.definition,
       sm.uses_ansi_nulls,
       sm.uses_quoted_identifier,
       sm.is_schema_bound,
       sm.execute_as_principal_id
    -- using the two system tables sys.sql_modules and sys.objects
    FROM sys.sql_modules AS sm
    JOIN sys.objects AS o ON sm.object_id = o.object_id
    -- from the function 'dbo.ufnGetProductDealerPrice'
    WHERE sm.object_id = OBJECT_ID('dbo.ufnGetProductDealerPrice')
    ORDER BY o.type;
    GO
    
    USE AdventureWorks2012;
    GO
    -- Get the definition of the function dbo.ufnGetProductDealerPrice
    SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition;
    GO
    

Weitere Informationen finden Sie unter sys.sql_modules (Transact-SQL) und OBJECT_DEFINITION (Transact-SQL).

So rufen Sie die Abhängigkeiten einer Funktion ab

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    USE AdventureWorks2012;
    GO
    -- Get all of the dependency information
    SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name, 
        o.type_desc AS referencing_desciption, 
        COALESCE(COL_NAME(sed.referencing_id, sed.referencing_minor_id), '(n/a)') AS referencing_minor_id, 
        sed.referencing_class_desc, sed.referenced_class_desc,
        sed.referenced_server_name, sed.referenced_database_name, sed.referenced_schema_name,
        sed.referenced_entity_name, 
        COALESCE(COL_NAME(sed.referenced_id, sed.referenced_minor_id), '(n/a)') AS referenced_column_name,
        sed.is_caller_dependent, sed.is_ambiguous
    -- from the two system tables sys.sql_expression_dependencies and sys.object
    FROM sys.sql_expression_dependencies AS sed
    INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
    -- on the function dbo.ufnGetProductDealerPrice
    WHERE sed.referencing_id = OBJECT_ID('dbo.ufnGetProductDealerPrice');
    GO
    

Weitere Informationen finden Sie unter sys.sql_expression_dependencies (Transact-SQL) und sys.objects (Transact-SQL).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]