Menampilkan fungsi yang ditentukan pengguna

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Anda dapat memperoleh informasi tentang definisi atau properti fungsi yang ditentukan pengguna di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Anda mungkin perlu melihat definisi fungsi untuk memahami bagaimana datanya berasal dari tabel sumber atau untuk melihat data yang ditentukan oleh fungsi.

Jika Anda mengubah nama objek yang dirujuk oleh fungsi, Anda harus mengubah fungsi tersebut sehingga teksnya mencerminkan nama baru. Oleh karena itu, sebelum mengganti nama objek, tampilkan dependensi objek terlebih dahulu untuk menentukan apakah ada fungsi yang terpengaruh oleh perubahan yang diusulkan.

Izin

Menggunakan sys.sql_expression_dependencies untuk menemukan semua dependensi pada fungsi memerlukan izin LIHAT DEFINISI pada database dan izin SELECT pada sys.sql_expression_dependencies untuk database. Definisi objek sistem, seperti yang dikembalikan dalam OBJECT_DEFINITION, terlihat secara publik.

Menggunakan SQL Server Management Studio

Menampilkan properti fungsi yang ditentukan pengguna

  1. Di Object Explorer, pilih tanda plus di samping database yang berisi fungsi yang ingin Anda tampilkan propertinya, lalu pilih tanda plus untuk memperluas folder Programmability .

  2. Pilih tanda plus untuk memperluas folder Functions .

  3. Pilih tanda plus untuk memperluas folder yang berisi fungsi yang ingin Anda lihat propertinya:

    • Fungsi bernilai tabel
    • Fungsi bernilai skalar
    • Fungsi Agregat
  4. Klik kanan fungsi yang ingin Anda tampilkan propertinya dan pilih Properti.

    Properti berikut muncul dalam kotak dialog Properti Fungsi -function_name .

    Nama fungsi Deskripsi
    Database Nama database yang berisi fungsi ini.
    Server Nama instans server saat ini.
    Pengguna Nama pengguna koneksi ini.
    Tanggal dibuat Menampilkan tanggal fungsi dibuat.
    Jalankan Sebagai Konteks eksekusi untuk fungsi tersebut.
    Nama Nama fungsi saat ini.
    Skema Menampilkan skema yang memiliki fungsi.
    Objek sistem Menunjukkan apakah fungsi adalah objek sistem. Nilai adalah True dan False.
    NULL ANSI Menunjukkan apakah objek dibuat dengan opsi NULL ANSI.
    Dienkripsi Menunjukkan apakah fungsi dienkripsi. Nilai adalah True dan False.
    Tipe Fungsi Jenis fungsi yang ditentukan pengguna.
    Pengidentifikasi yang dikutip Menunjukkan apakah objek dibuat dengan opsi pengidentifikasi yang dikutip.
    Terikat skema Menunjukkan apakah fungsi terikat skema. Nilai adalah True dan False. Untuk informasi tentang fungsi terikat skema, lihat bagian SCHEMABINDING dari CREATE FUNCTION (Transact-SQL).

Menggunakan Transact-SQL

Mendapatkan definisi dan properti fungsi

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, pilih Kueri Baru.

  3. Salin dan tempel salah satu contoh berikut ke jendela kueri dan pilih Jalankan.

    Sampel kode berikut mendapatkan nama fungsi, definisi, dan properti yang relevan.

    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
    

    Sampel kode berikut mendapatkan definisi fungsi dbo.ufnGetProductDealerPricecontoh .

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

Untuk informasi selengkapnya, lihat sys.sql_modules (Transact-SQL) dan OBJECT_DEFINITION (Transact-SQL).

Mendapatkan dependensi fungsi

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.

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

Untuk informasi selengkapnya, lihat sys.sql_expression_dependencies (Transact-SQL) dan sys.objects (Transact-SQL).