Visa användardefinierade funktioner

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Du kan få information om definitionen eller egenskaperna för en användardefinierad funktion i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Du kan behöva se definitionen av funktionen för att förstå hur dess data härleds från källtabellerna eller för att se de data som definieras av funktionen.

Om du ändrar namnet på ett objekt som en funktion refererar till måste du ändra funktionen så att dess text återspeglar det nya namnet. Innan du byter namn på ett objekt ska du därför först visa beroendena för objektet för att avgöra om några funktioner påverkas av den föreslagna ändringen.

Behörigheter

För att använda sys.sql_expression_dependencies för att hitta alla beroenden på en funktion krävs behörigheten VIEW DEFINITION på databasen och behörigheten SELECT på sys.sql_expression_dependencies i databasen. Systemobjektdefinitioner, som de som returneras i OBJECT_DEFINITION, är offentligt synliga.

Använda SQL Server Management Studio

Visa egenskaper för en användardefinierad funktion

  1. I Object Explorerväljer du plustecknet bredvid databasen som innehåller den funktion som du vill visa egenskaperna för och väljer sedan plustecknet för att expandera mappen Programmability.

  2. Välj plustecknet för att expandera mappen Functions.

  3. Välj plustecknet för att expandera mappen som innehåller den funktion som du vill visa egenskaperna för:

    • Tabellvärdesfunktion
    • Skalärvärd funktion
    • Aggregeringsfunktion
  4. Högerklicka på funktionen som du vill visa egenskaperna för och välj Egenskaper.

    Följande egenskaper visas i dialogrutan Funktionsegenskaper –function_name.

    Funktionsnamn Beskrivning
    Databas Namnet på databasen som innehåller den här funktionen.
    Server Namnet på den aktuella serverinstansen.
    Användare Namnet på användaren av den här anslutningen.
    Skapat datum Visar det datum då funktionen skapades.
    Utför som Körningskontext för funktionen.
    Namn Namnet på den aktuella funktionen.
    Schemat Visar det schema som äger funktionen.
    Systemobjekt Anger om funktionen är ett systemobjekt. Värdena är True och False.
    ANSI-NULL:er Anger om objektet skapades med alternativet ANSI NULLs.
    Krypterade Anger om funktionen är krypterad. Värdena är True och False.
    Funktionstyp Typen av användardefinierad funktion.
    Citerad identifierare Anger om objektet skapades med det angivna identifieraralternativet.
    Schemabunden Anger om funktionen är schemabunden. Värdena är Sant och Falskt. Information om schemabundna funktioner finns i avsnittet SCHEMABINDING i CREATE FUNCTION (Transact-SQL).

Använd Transact-SQL

Hämta definitionen och egenskaperna för en funktion

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in något av följande exempel i frågefönstret och välj Kör.

    Följande kodexempel hämtar funktionsnamnet, definitionen och relevanta egenskaper.

    USE AdventureWorks2022;
    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
    

    Följande kodexempel hämtar definitionen av exempelfunktionen dbo.ufnGetProductDealerPrice.

    USE AdventureWorks2022;
    GO
    -- Get the definition of the function dbo.ufnGetProductDealerPrice
    SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition;
    GO
    

Mer information finns i sys.sql_modules (Transact-SQL) och OBJECT_DEFINITION (Transact-SQL).

Hämta beroenden för en funktion

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör.

    USE AdventureWorks2022;
    GO
    -- Get all of the dependency information
    SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name,
        o.type_desc AS referencing_description,
        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
    

Mer information finns i sys.sql_expression_dependencies (Transact-SQL) och sys.objects (Transact-SQL).