Function & Store Procedure sama-sama merupakan kumpulan statement-statement SQL yang digabung menjadi 1 function atau procedure. Perbedaan utamanya adalah function dapat dipanggil bersamaan dengan statement select sql sedangkan store procedure tidak bisa. Contoh function-function default yang sudah dimiliki sistem misalnya SUM(), ABS(), LEFT(), RIGHT() dan masih banyak lagi. Untuk melihat function-function yang sudah ada, klik pada bagian Object Explorer. Expand <Databases>~<Nama Database>~<Programmability>~<Functions>~<System Functions>.
Sama seperti object database lainnya, function & store procedure bisa kita buat, ubah dan hapus dengan statement CREATE, ALTER dan DROP. Function & Store Procedure sama-sama terletak pada bagian Programmability dalam masing-masing database. Untuk membuat function, klik kanan bagian Functions~New~Pilih Jenis Function. Untuk membuat procedure, klik kanan bagian Stored Procedures~New Store Procedure.
Optional
Adalah parameter yang boleh dikosongkan ketika function dipanggil. Contoh :
Default
Adalah parameter yang akan berisi nilai default jika parameter tidak disi ketika function dipanggil. Contoh :
NB : Sebelum dilanjutkan, pastikan database inventory1 sudah dibuat dan data-data sudah diisi.
Function
Function memiliki 3 jenis parameter yaitu sbb :- Input Adalah parameter yang wajib diisi ketika function dipanggil. Contoh :
CREATE FUNCTION nama (@parameter1 int)
CREATE FUNCTION nama (@parameter1 int = NULL)
CREATE FUNCTION nama (@parameter1 int = 100)Berikut adalah contoh syntax function :
USE inventory1; GO -- membuat function CREATE FUNCTION umur_faktur(@tgl_faktur DATE) RETURNS INT AS BEGIN DECLARE @umur INT SELECT @umur = DATEDIFF(YEAR,@tgl_faktur,GETDATE()) RETURN @umur END GO -- mengubah function ALTER FUNCTION umur_faktur(@tgl_faktur DATE) RETURNS INT AS BEGIN DECLARE @umur INT SELECT @umur = DATEDIFF(DAY,@tgl_faktur,GETDATE()) RETURN @umur END GO -- menghapus function DROP FUNCTION umur_faktur; GO -- menggunakan function SELECT kd_jual, tgl_jual, dbo.umur_faktur(tgl_jual) AS 'Umur Faktur' FROM t_jual_h; GOReferensi-referensi function dalam MSDN :
Store Procedure
Store procedure memiliki 3 jenis parameter yang sama dengan parameter function diatas. Cara penulisan parameternya sama dengan parameter function. Berikut adalah contoh syntax store procedure :USE inventory1; GO -- membuat store procedure CREATE PROCEDURE lihat_umur_faktur AS BEGIN SELECT kd_jual, tgl_jual, dbo.umur_faktur(tgl_jual) AS 'Umur Faktur' FROM t_jual_h END GO -- mengubah store procedure ALTER PROCEDURE lihat_umur_faktur AS BEGIN SELECT kd_jual, tgl_jual, DATEDIFF(DAY,tgl_jual,GETDATE()) AS 'Umur Faktur' FROM t_jual_h ORDER BY kd_jual DESC END GO -- menghapus store procedure DROP PROCEDURE lihat_umur_faktur; GO -- menjalankan store procedure EXECUTE lihat_umur_faktur; -- hasilnya sama dengan syntax EXEC EXEC lihat_umur_faktur; GO -- store procedure dengan parameter CREATE PROCEDURE lihat_faktur_per_cust (@kd_cust VARCHAR(20), @status_lunas BIT = 0) AS BEGIN SELECT kd_jual,tgl_jual,ttl_jual,lunas FROM t_jual_h WHERE kd_cust=@kd_cust AND lunas=@status_lunas ORDER BY tgl_jual DESC END GO -- menjalankan store procedure dengan parameter EXEC lihat_faktur_per_cust @kd_cust='J001'; EXEC lihat_faktur_per_cust @kd_cust='J001', @status_lunas=1; GO -- store procedure utk menginput data CREATE PROCEDURE input_customer (@kd_custX VARCHAR(20), @nm_custX VARCHAR(100), @sisa_piutangX MONEY = 0) AS BEGIN INSERT INTO t_cust (kd_cust,nm_cust,sisa_piutang)VALUES (@kd_custX,@nm_custX,@sisa_piutangX) SELECT * FROM t_cust END GO -- menjalankan store procedure utk menginput data EXEC input_customer @kd_custX='ZZZZ', @nm_custX='nama customer via store procedure' GOReferensi-referensi store procedure dalam MSDN :
Tidak ada komentar:
Posting Komentar