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