Anda di halaman 1dari 7

2016

Sistem Manajemen Basis Data


STORED PROCEDURE DAN TRIGGER
TIM SMBD-JTI
SMBD-JTI

A. Kompetensi Dasar
- Mahasiswa mampu membuat dan mengeksekusi sebuah stored procedure.
- Mahasiswa mampu membuat stored procedure sederhana yang mengenkapsulasi perintah
SELECT.
- Mahasiswa mampu membuat dan mengeksekusi query secara dinamis menggunakan fungsi
EXEC dan sp_executesql.
- Mahasiswa mampu membuat trigger DML.
B. Alokasi Waktu
2 x 45 menit
C. Ruang Lingkup Pembahasan
- Stored Procedure
- Trigger
D. Materi
1. Query menggunakan stored procedure
a. Pengertian
o Stored procedure merupakan koleksi T-SQL yang disimpan dalam suatu database.
o Stored procedure dapat me-return suatu nilai (skalar), memanipulasi data dan
menjalankan perintah administrasi pada suatu server.
o Dengan menambahkan beberapa fungsional lainnya, stored procedure dapat
meningkatkan efisiensi dari pengembangan perangkat lunak terutama di bagian antar
muka (interface) perangkat lunak dengan database.
b. Sintaks
o Untuk membuat stored procedure baru, gunakan sintaks berikut.

USE nama_database
GO
CREATE PROCEDURE nama_skema.nama_prosedur
@parameter tipe_data_parameter
AS perintah TSQL GO

o Untuk membuat sebuah stored procedure dengan return, gunakan sintaks berikut.

CREATE PROCEDURE Sales.lihatJumlahOrder


@parameter1 tipe_data,
@parameter2 tipe_data OUTPUT
AS perintah TSQL
RETURN GO

o Untuk dapat mengeksekusi suatu stored procedure gunakan perintah EXECUTE atau
EXEC. Untuk dapat mengeksekusi suatu stored procedure yang membutuhkan
parameter, gunakan nilai yang ditampung pada sebuah variabel.

EXECUTE nama_skema.nama_prosedur @parameter=nilai


EXEC nama_skema.nama_prosedur @parameter=nilai

o Untuk stored procedure dengan lebih dari satu parameter, setiap parameter dipisahkan
dengan tanda koma.

EXEC nama_skema.nama_prosedur @parameter1=nilai, @parameter2=nilai

1
SMBD-JTI

o Untuk memodifikasi sebuah stored procedure, gunakan sintaks berikut.

ALTER PROCEDURE nama_skema.nama_prosedur


@parameter tipe_data_parameter
AS perintah TSQL GO

o Untuk menghapus sebuah stored procedure, gunakan sintaks berikut.

DROP PROCEDURE nama_skema.nama_prosedur


GO

2. Parameter dan stored procedure


o Untuk stored procedure yang mengenkapsulasi perintah SELECT sederhana, tidak
diperlukan sintaks tambahan sementara untuk stored procedure yang melibatkan output
skalar, maka diperlukan sintaks tambahan.

DECLARE @parameter_output AS tipe_data


EXEC nama_skema.nama_prosedur @parameter1, @parameter2 OUTPUT;

SELECT @parameter2
GO

3. SQL dinamis
SQL dinamis menyediakan sebuah mekanisme untuk menyusun string yang dapat
diinterpretasikan sebagai perintah untuk kemudian dieksekusi. SQL dinamis dibutuhkan ketika
akan mengeksekusi command yang berkaitan dengan DDL, data control dan session control.
SQL dinamis dapat dieksekusi menggunakan EXEC/EXECUTE atau sp_executesql dengan
sintaks sebagai berikut.
DECLARE @parameter AS tipe_data;
SET @parameter = substring_perintah + substring_perintah
EXEC(@parameter);
GO

DECLARE @parameter1 AS NVARCHAR(256) = N'string_perintah';


EXEC sys.sp_executesql @parameter2 = @parameter1;
GO

4. Trigger
Trigger merupakan salah satu bentuk stored procedure yang secara otomatis akan tereksekusi
ketika sebuah even muncul pada server database.
o Trigger DML akan dieksekusi ketika seorang pengguna melakukan manipulasi data
(INSERT, UPDATE, DELETE) pada tabel.

CREATE TRIGGER nama_skema.nama_trigger


ON nama_tabel

FOR/AFTER
pilihan_perintah_DML (INSERT/UPDATE/DELETE)
AS sql_statement GO

2
SMBD-JTI

o Trigger DDL akan dieksekusi ketika perintah seperti CREATE, ALTER dan DROP
dieksekusi atau setiap perintah yang mirip dengan DDL.

CREATE TRIGGER nama_trigger


ON ALL SERVER/DATABASE
FOR/AFTER pilihan_perintah_DDL (CREATE/ALTER/DROP/GRANT/DENY/REVOKE/UPDATE
STATISTICS)
AS sql_statement/EXTERNAL NAME spesifikasi_metode

o Trigger Logon akan dieksekusi ketika session dari pengguna diaktifkan.

CREATE TRIGGER nama_trigger


ON ALL SERVER
FOR/AFTER LOGON
AS sql_statement/EXTERNAL NAME spesifikasi_metode

E. Latihan
1. Query menggunakan stored procedure
a. Contoh 1

3
SMBD-JTI

b. Contoh 2

2. Parameter dan stored procedure

4
SMBD-JTI

3. SQL dinamis
a. Contoh 1

b. Contoh 2

c. Contoh 3

5
SMBD-JTI

4. Trigger
a. Contoh 1

b. Contoh 2