Menjalankan fungsi yang ditentukan pengguna

Berlaku untuk:SQL ServerAzure SQL Database

Jalankan fungsi yang ditentukan pengguna menggunakan Transact-SQL.

Fungsi skalar harus dipanggil dengan menggunakan setidaknya nama dua bagian fungsi (<schema>.<function>). Untuk informasi selengkapnya, lihat CREATE FUNCTION (Transact-SQL).

Batasan

Dalam Transact-SQL, parameter dapat disediakan baik dengan menggunakan <value> atau dengan menggunakan @parameter_name = <value>. Parameter bukan bagian dari transaksi. Oleh karena itu, jika parameter diubah dalam transaksi yang kemudian digulung balik, nilai parameter tidak kembali ke nilai sebelumnya. Nilai yang dikembalikan ke pemanggil selalu merupakan nilai pada saat modul kembali.

Izin

Izin tidak diperlukan untuk menjalankan pernyataan EXECUTE . Namun, izin diperlukan pada jaminan yang dirujuk dalam EXECUTE string. Misalnya, jika string berisi pernyataan INSERT , pemanggil EXECUTE pernyataan harus memiliki INSERT izin pada tabel target. Izin diperiksa pada pernyataan waktu EXECUTE ditemui, bahkan jika EXECUTE pernyataan disertakan dalam modul. Untuk informasi selengkapnya, lihat JALANKAN.

Menggunakan Transact-SQL

Contoh ini menggunakan ufnGetSalesOrderStatusText fungsi bernilai skalar yang tersedia di sebagian besar edisi AdventureWorks2022. Tujuan fungsi ini adalah untuk mengembalikan nilai teks untuk status penjualan dari bilangan bulat tertentu. Bervariasi contoh dengan meneruskan bilangan bulat 1 hingga 7 ke @Status parameter .

USE [AdventureWorks2022]
GO

-- Declare a variable to return the results of the function.
DECLARE @ret NVARCHAR(15);

-- Execute the function while passing a value to the @status parameter
EXEC @ret = dbo.ufnGetSalesOrderStatusText @Status = 5;

-- View the returned value.
-- The Execute and Select statements must be executed at the same time.
SELECT N'Order Status: ' + @ret;

Berikut hasilnya.

Order Status: Shipped