Megosztás a következőn keresztül:


Felhasználó által definiált függvények megtekintése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL-felügyelt példány

Az SQL Server felhasználó által definiált függvényeinek definíciójáról vagy tulajdonságairól az SQL Server Management Studio vagy a Transact-SQL használatával szerezhet információt. Előfordulhat, hogy látnia kell a függvény definícióját annak megértéséhez, hogy az adatok hogyan származnak a forrástáblákból, vagy hogy megtekintse a függvény által definiált adatokat.

Ha módosítja egy függvény által hivatkozott objektum nevét, módosítania kell a függvényt, hogy a szöveg tükrözze az új nevet. Ezért az objektum átnevezése előtt először jelenítse meg az objektum függőségeit, és állapítsa meg, hogy a javasolt módosítás érint-e függvényeket.

Engedélyek

A sys.sql_expression_dependencies segítségével egy függvény összes függőségének megkereséséhez szükséges az adatbázis VIEW DEFINITION engedélye, és sys.sql_expression_dependencies esetében a SELECT engedélye is. A rendszerobjektum-definíciók, mint például az OBJECT_DEFINITION által visszaadottak, nyilvánosan láthatók.

Az SQL Server Management Studio használata

Felhasználó által definiált függvény tulajdonságainak megjelenítése

  1. Az Objektumkezelő-ben válassza ki a pluszjelet annak az adatbázisnak a neve mellett, amely a tulajdonságokat megtekinteni kívánt függvényt tartalmazza, majd válassza ki a pluszjelet, hogy kibontsa a Programozhatósági mappát.

  2. A pluszjel kiválasztásával bontsa ki a Functions mappát.

  3. A pluszjel kiválasztásával bontsa ki azt a mappát, amely tartalmazza azt a függvényt, amelyhez meg szeretné tekinteni a tulajdonságokat:

    • Táblaértékű függvény
    • Skaláris értékű függvény
    • Összesítő függvény
  4. Kattintson a jobb gombbal arra a függvényre, amelynek a tulajdonságait meg szeretné tekinteni, és válassza a Tulajdonságoklehetőséget.

    A következő tulajdonságok jelennek meg a Függvény tulajdonságai –function_name párbeszédpanelen.

    Függvény neve Leírás
    Adatbázis A függvényt tartalmazó adatbázis neve.
    Kiszolgáló Az aktuális kiszolgálópéldány neve.
    Felhasználó A kapcsolat felhasználójának neve.
    Létrehozás dátuma Megjeleníti a függvény létrehozásának dátumát.
    Végrehajtás mint A függvény végrehajtási környezete.
    Név Az aktuális függvény neve.
    Séma Megjeleníti a függvényt birtokban lévő sémát.
    Rendszerobjektum Azt jelzi, hogy a függvény rendszerobjektum-e. Az értékek True és False.
    ANSI NULL-ek Azt jelzi, hogy az objektum az ANSI NULLs beállítással lett-e létrehozva.
    Titkosított Azt jelzi, hogy a függvény titkosítva van-e. Az értékek True és False.
    Függvény típusa A felhasználó által definiált függvény típusa.
    Idézett azonosító Azt jelzi, hogy az objektum az idézett azonosítóval lett-e létrehozva.
    Sémához kötött Azt jelzi, hogy a függvény sémakötésű-e. Az értékek igazak és hamisak. A séma-kötöttséggel rendelkező függvényekről további információt a CREATE FÜGGVÉNY (Transact-SQL)SCHEMABINDING szakasznál talál.

Használd a Transact-SQL-t

Függvény definíciójának és tulajdonságainak lekérése

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be az alábbi példák egyikét a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    Az alábbi kódminta lekéri a függvény nevét, definícióját és releváns tulajdonságait.

    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
    

    Az alábbi kódminta a példafüggvény dbo.ufnGetProductDealerPricedefinícióját adja meg.

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

További információ: sys.sql_modules (Transact-SQL) és OBJECT_DEFINITION (Transact-SQL).

Függvény függőségeinek lekérése

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    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
    

További információ: sys.sql_expression_dependencies (Transact-SQL) és sys.objects (Transact-SQL).