Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa itu UDF Skalar di SQL Server?

Di SQL Server, UDF skalar, atau fungsi skalar yang ditentukan pengguna, adalah fungsi yang ditentukan pengguna yang mengembalikan nilai tunggal.

Ini berbeda dengan fungsi bernilai tabel, yang mengembalikan kumpulan hasil dalam bentuk tabel.

Fungsi yang ditentukan pengguna dapat ditulis sebagai UDF T-SQL atau UDF CLR (Common Language Runtime). CLR memungkinkan Anda membuat UDF dalam kode terkelola menggunakan bahasa pemrograman .NET Framework apa pun. Fungsi-fungsi ini kemudian dapat diakses oleh T-SQL atau kode terkelola lainnya.

Contoh 1 – UDF Skalar Dasar

Berikut adalah contoh kode yang digunakan untuk membuat UDF skalar T-SQL dasar.

BUAT FUNGSI dbo.ufn_discountPrice( @price DECIMAL(12,2), @discount DECIMAL(12,2) ) RETURNS DECIMAL (12,2)ASBEGIN RETURN @price * (1 - @discount);END; 

UDF skalar ini menerima dua parameter; @price dan @discount . Ini diteruskan ke fungsi sebagai argumen setiap kali fungsi dipanggil. Fungsi mengambil nilai argumen tersebut, melakukan penghitungan menggunakan nilai tersebut, lalu mengembalikan nilai yang dihasilkan. Dalam hal ini, harga diskon dikembalikan.

Contoh 2 – Aktifkan UDF

Setelah UDF dibuat, UDF dapat dipanggil dalam kode T-SQL kapan pun Anda membutuhkannya.

Berikut ini contoh pemanggilan UDF:

SELECT dbo.ufn_discountPrice(100, .2) SEBAGAI Hasil;

Hasil

+----------+| Hasil ||----------|| 80.00 |+----------+

Anda juga dapat menggunakan UDF skalar dalam kolom yang dihitung. Ini bisa sangat berguna jika Anda memerlukan kolom yang dihitung untuk mengakses data di tabel lain.

Opsi Fungsi

Saat Anda membuat UDF skalar, ada berbagai opsi yang dapat Anda terapkan pada fungsi tersebut.

Misalnya Anda dapat menentukan apakah itu harus terikat skema atau tidak. Anda dapat menentukan bahwa itu harus dienkripsi. Anda juga dapat menentukan EXECUTE AS klausa untuk menentukan konteks keamanan di mana fungsi yang ditentukan pengguna dijalankan.

Lihat dokumentasi Microsoft untuk daftar detail opsi yang dapat Anda berikan saat membuat atau mengubah fungsi yang ditentukan pengguna.

Jenis Data Parameter

Untuk fungsi T-SQL, semua tipe data, termasuk tipe yang ditentukan pengguna CLR dan tipe tabel yang ditentukan pengguna, diizinkan kecuali stempel waktu dan kursor nonskalar dan tabel jenis.

Untuk fungsi CLR, semua tipe data, termasuk tipe yang ditentukan pengguna CLR, diperbolehkan kecuali teks , nteks , gambar , jenis tabel yang ditentukan pengguna, stempel waktu tipe data, dan kursor non nonskalar dan tabel jenis.

Tipe Data Pengembalian

Tipe data yang dikembalikan untuk UDF skalar T-SQL dapat berupa tipe data apa pun kecuali stempel waktu dan kursor nonskalar dan tabel jenis.

Fungsi CLR dapat menggunakan tipe data apa pun kecuali teks , nteks , gambar , stempel waktu , dan kursor non nonskalar dan tabel jenis.

Baik fungsi T-SQL dan CLR dapat memiliki tipe yang ditentukan pengguna CLR untuk nilai pengembaliannya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih pernyataan untuk mengembalikan induk dan anak tak terbatas

  2. sp_executesql lambat dengan parameter

  3. Memahami Masalah Baca Kotor dengan SQL Server

  4. Kembalikan Hak Istimewa Tabel dari Server Tertaut di SQL Server (Contoh T-SQL)

  5. Tambahkan nilai default bidang datetime di SQL Server ke stempel waktu