Part 14 - Store Proceduree PDF
Part 14 - Store Proceduree PDF
Pertemuan ke-14
www.rahmadani.net 1
Pengertian…
www.rahmadani.net 2
Penggunaan Stored Procedure
Pada saat SQL Server 2005 dijalankan, Bahasa T-SQL
adalah hal utama yang digunakan sebagai penghubung
antara Aplikasi dengan Sistem database.
www.rahmadani.net 3
Ilustrasi..
Request;
Response;
www.rahmadani.net 4
Lanjt….
www.rahmadani.net 5
Stored Procedure vs Procedure
www.rahmadani.net 6
Tipe Stored Procedure
• System Stored Procedure:
– Nama dimulai dengan sp_ atau xp_ (extended stored procedur
akan dihilangkan)
– Dibuat dalam database master
– Tujuannya untuk pengaplikasian dalam database apapun
– Sering digunakan oleh sysadmin
• Local Stored Procedure:
– Ditetapkan di database lokal
– Nama sering dimulai dengan pr_ atau usp
• Dalam prakteknya lebih baik gunakan nama yang mudah:
– Tanpa prefix
– Sesuaikan dengan yang ada di aplikasi
www.rahmadani.net 7
Kelebihan Stored Procedure(1)
• Keamanan lebih
– stored procedure selalu tersimpan pada
database server
– Memberikan grant user permission utk
menjalankan SP
• Mengurangi lalu lintas jaringan
– SP dapat mengurangi query SQL panjang
menjadi satu baris yang ditransmisikan
sehingga mengurangi lalu lintas client-server.
www.rahmadani.net 8
Kelebihan Stored Procedure(2)
• Waktu Eksekusi lebih cepat
– Bila perlu T-SQL yang banyak dan berulang-ulang,
maka SP bisa lebih cepat drpd batch T-SQL code. SP
dicompile sekali, disimpan dalam memory dan
digunakan untuk pemanggilan berikutnya (tidak perlu
dikompilasi ulang). SQL dapat dioptimasikan oleh
DBMS compiler
www.rahmadani.net 10
Membuat Stored Procedure
Sintaks:
CREATE PROCEDURE NamaProsedur AS
Deklarasi_Variable
.. .. ..
.. .. ..
RETURN
Contoh:
CREATE PROCEDURE pr_honor AS
SELECT namainstruktur, honor FROM
instruktur
RETURN
www.rahmadani.net 11
Menjalankan Stored Procedure
• dengan EXEC
EXEC pr_honor
EXEC sp_help
• dengan EXECUTE
EXECUTE pr_honor
EXECUTE sp_help
www.rahmadani.net 12
Mengkoreksi Sebuah Prosedur
www.rahmadani.net 13
Menghapus Stored Procedure
Contoh:
DROP PROCEDURE pr_honor
DROP PROCEDURE uspHitungGaji
www.rahmadani.net 14
Mengubah Prosedur Tanpa
Menggunakan ALTER
Cek prosedur ada, bila ada di drop, kemudian baru create;
USE mydb
IF EXISTS (SELECT name FROM sysobjects
WHERE nama= 'pr_honor' AND type = 'P')
DROP PROCEDURE pr_honor
GO
CREATE PROCEDURE pr_honor
AS
SELECT inisial, namainstruktur, honor
FROM instruktur
GO
www.rahmadani.net 15
Mengubah Nama Stored Procedure
www.rahmadani.net 16
Parameter..
www.rahmadani.net 17
Maksudnya..
• Prosedur dapat mempunyai parameter berupa
variable yang disuplai oleh program yang
memanggilnya
• Sintaks parameter
– @param as datatype = default [OUT/OUTPUT]
Contoh:
CREATE PROC pr_honor (@p1 int, @p2 char(16), .. )
AS
Deklarasi_Variable
.. .. ..
.. .. ..
www.rahmadani.net 18
Model Parameter
• Input parameter
– Digunakan untuk memberikan nilai dari pemanggil ke
dalam SP
Contoh:
CREATE PROC pr_honor (@p1 INT) AS …
• Output parameter
– Digunakan untuk mengembalikan nilai non-recordset
dari SP ke pemanggil.
– Misalnya SP untuk insert, mengembalikan nilai hasil
identity
Contoh:
CREATE PROC pr_honor (@p1 INT, @p2 CHAR(16),@pout1
INT OUT, @pout2 CHAR(1) OUTPUT) AS …
www.rahmadani.net 19
Output Parameter
• Nilai parameter bisa diolah pada program
prosedur dan untuk kemudian parameter
tersebut dapat diubah dan diberikan nilainya
pada program yang memanggilnya.
CREATE PROC m (
@p1 int, @p2 int, @h int OUTPUT)
AS
SELECT @h= @p1 * @p2
www.rahmadani.net 20
Eksekusi Output Parameter
Contoh:
DECLARE @hsl INT
EXEC m 10, 20, @hsl OUTPUT
PRINT 'hasil = ' + str (@hsl)
www.rahmadani.net 21
Parameter dgn Default Value
• Default value
– Untuk menghindari null karena nilai tidak diberikan
– Merupakan nilai default yang otomatis diberikan bila
tidak dispesifikasikan ketika pemanggilan SP
Contoh:
CREATE PROC pr_honor (@p1 INT=5) AS
select nama instruktur, honor from instruktur
where inisial=@ini
Return
• Urutan parameter
– Tempatkan parameter dengan default value di akhir dari
daftar parameter untuk penggunaan fleksibel
www.rahmadani.net 22
Eksekusi Procedure Berparameter
• Pada saat eksekusi, parameter diberikan
setelah nama SP
• Berdasarkan nama:
EXEC pr_GetTopProducts
@StartID = 1, @EndID = 10
• Berdasarkan posisi:
EXEC pr_GetTopProducts 1, 10
www.rahmadani.net 23
Case Sederhana…
www.rahmadani.net 24
Step 1; Membuat Store Procedure
www.rahmadani.net 25
Case 2;
Membuat SP dengan Variabel via Query Analyzer
www.rahmadani.net 26
www.rahmadani.net 27