Membuat trigger di sql Server 2008

PEMBUATAN TRIGER PADA SQL SERVER
Kali ini saya akan share tentang bagaimana cara pembuatan trigger pada SQL Server .
Pertama-tama tama kita buat dulu databasenya dengan perintah biasa, yakni dengan mengcreate database, disini kita akan membuat database perpustakaan. berikut perintah dalam pembuatan database dan masuk ke dalam database itu sendiri.

Create database perpustakaan;
Use perpustakaan;

Kemudian jika suda selesai kita buat tabelnya.
Tabel-tabel yang akan kita buat sebagai berikut :
# tabel anggota
# tabel administrasi
# tabel buku
# tabel transaksi/pinjam (disini saya mengunakan kata transaksi)
Berikut perintah untuk membuat tabel-tabel diatas :
Tabel anggota :
create table Anggota(
Id_Anggota varchar(10) not null primary key,
Nama varchar(35),
Alamat varchar(35),
Tempat_Lahir varchar(20),
Tgl_Lahir datetime ,
Jenis_Kelamin varchar(10),
Pekerjaan varchar(20),
No_Telephone varchar(15))
Tabel buku :
create table Buku(
Id_Buku varchar(10) not null primary key ,
Judul varchar(50),
Pengarang varchar(35),
Penerbit varchar(35),
Tahun_Terbit varchar(10),
No_Rak varchar(10),
Jumlah_Buku int )
Tabel administrasi :
create table Administrasi(
Id_Admin varchar(10) not null primary key,
Nama varchar(35),
Alamat varchar(35),
Tempat_Lahir varchar(20),
Tgl_Lahir datetime ,
Jenis_Kelamin varchar(10),
No_Telephone varchar(15))
Tabel transaksi :
Create table transaksi (
Id_Pinjam varchar(10) not null primary key,
Id_Buku varchar(10) constraint Id_Buku foreign key (Id_Buku) references Buku(Id_Buku),
Id_Anggota varchar(10) constraint Id_Anggota foreign key (Id_Anggota)
references Anggota(Id_Anggota),
Id_Admin varchar(10) constraint Id_Admin foreign key (Id_Admin) references
Administrasi(Id_Admin ),
Jumlah_Pinjam int,
Tgl_Pinjam datetime,
Tgl_Kembali datetime)
Jika semua tabelnya sudah diisi, kita tinggal mengisi atau menginsert tabelnya
Berikut perintah yang kita harus ketikan (copykan) untuk mengisi tiap-tiap tabel :
Tabel anggota :
insert into Anggota values ('ANG-001','ADUL SUKIRMAN','JL. SENTOSA NO.12 MEDAN','JAKARTA','1990-09-21','LAKI-LAKI','WIRASWASTA','061-6646982')
insert into Anggota values ('ANG-002','BUDI ANDUK','JL. MAKMUR NO. 10 BELAWAN','MEDAN','1988-10-11' , 'LAKI-LAKI', 'SUPIR','061-6643122')
insert into Anggota values ('ANG-003','CEPOT PAIJO','JL. MADIOSANTOSO NO.32 TITI PAPAN','SUKABUMI','1991- 09-10','LAKI-LAKI','MAHASISWA','085212343590')
insert into Anggota values ('ANG-004','DONO SANGKURIA NG','JL. KRAKATAU NO.18 MARELAN','MANDAILING NATAL','1980-03-09','LAKI- LAKI', 'WARTAWAN','083129876578')
insert into Anggota values ('ANG-005','EDY SUPONO','JL. PRAJURIT NO. 90 MARTUBUNG','ACEH',
Tabel buku :
insert into Buku values ('BU-001','ALGORITMA DAN PEMROGRAMAN C','RINALDI MUNIR','INFORMATIKA','2003','R-02',15)
insert into Buku values ('BU-002','APLIKASI DATABASE VB.NET DENGAN SQL SERVER','MUHAMMAD RHIFKY','ANDI OFFSE T','2013','R-02',25)
insert into Buku values ('BU-003','BAHASA C DASAR','JOGIYANTO PHD','ANDI OFFSET','2007','R-01',10)
insert into Buku values ('BU-004', 'MATEMATIKA DISKRIT', 'RINALDI MUNIR','INFORMATIKA','2010','R-01',5)
insert into Buku values ('BU-005','VISUAL BASIC.NET 2010','PRIYANTO HIDAYATULLAH','INFORMATIKA','2012','R-03',20)
Tabel administrasi :
insert into Administrasi values ('ADM-001','ENJELIA AGUSTINA','JL. UMAR NO.34 MEDAN','MEDAN','1993-08-01','PEREMPUAN','085789844932')
insert into Administrasi values ('ADM-002','GHASSANI SYAFITRI','JL. BONO NO.58 MEDAN','BANDUNG', '1990- 01- 21', 'PEREMPUAN','085209878909')
insert into Administrasi values ( 'ADM- 003', 'HENY HANDAYANI', 'JL. MUSTAFA NO. 02 MEDAN','JAKARTA','1989-07-05','PEREMPUAN','082187564765')
insert into Administrasi values ( 'ADM- 004', 'JONO SANTOSO', 'JL. MARELAN NO. 44 MEDAN','MEDAN','1992-04-09','LAKI-LAKI','083123454312')
insert into Administrasi values ( 'ADM- 005', 'SUMARDI ALFIANTO' , 'JL. MANDOR NO. 14 MEDAN','BOGOR','1990-09-28','LAKI-LAKI', '061-6648989')
jika sudah kita lihat isi tabel yang sudah kita inputkan tadi, dengan perintah berikut :
select * from Anggota
select * from Administrasi
select * from Buku
Berikut hasilnya :
==========================================
Selanjutnya pokokpembahasan kita, yakni pembuatan trigger
Berikut pembuatan trigger insert into anggota :
create trigger trig_Anggota
on Anggota for insert
as
print 'Data Anggota Berhasil Ditambahkan'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())
Print 'Nama Host : ' + HOST_NAME()
Jika sudah, kita coba dengan memasukan data ke dalamnya.
Berikut perintahnya :
insert into Anggota values ( 'ANG- 006', 'M. RHIFKY', 'JL. SENTOSA INDAH NO. 21 MEDAN', 'MEDAN', '1980- 06- 23' , 'LAKI- LAKI', 'GURU' , '085763155905')
kita select * from Anggota untuk melihatnya !
dan hasilnya sebagai berikut :
==============================
Selanjutnya trigger insert data buku :
create trigger trig_Buku
on Buku for insert
as
print 'Data Buku Berhasil Ditambahkan'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())
Print 'Nama Host : ' + HOST_NAME()
Kita coba dengan perintah berikut :
insert into Buku values ( 'BU - 006', 'SQL SERVER 2008' , 'PROF. WAYAHDI' , 'ANDI
OFFSET', '2013' , 'R- 03' , 25)
Jika sudah selesai kita select *from buku
Dan hasilnya sebagai berikut :
============================
Dan untuk trigger administrasi kita bisa buat dengan cara yang sama.
Dan hasilnya :
============================
Selanjutnya membuat trigger insert pada tabel pinjam dimana jumlah pinjam update dengan jumlah buku pada tabel buku
Berikut ini perintahnya :
create trigger Insert_Data_Pinjam on transaksi
after insert
as
update Buku set Buku. Jumlah_Buku = Buku. Jumlah_Buku -
INSERTED . Jumlah_Pinjam  from INSERTED where Buku. Id_Buku = INSERTED . Id_Buku
print 'Data Pinjam Berhasil Ditambahkan'
print 'Jumlah Buku Pada Table Buku Juga Berhasil Ter - Update'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())
Print 'Nama Host : ' + HOS T_NAME ()
dan kitacoba dengan memsaukan data kedalamnya :
insert into Pinjam values
( 'PJM- 001', 'BU - 005', 'ANG- 001', 'ADM- 003', 1 , '2013- 08- 09' ,NULL)
insert into Pinjam values
( 'PJM- 002', 'BU - 004', 'ANG- 002', 'ADM- 003', 2 , '2013- 08- 11' ,NULL)
insert into Pinjam values
( 'PJM- 003', 'BU - 002', 'ANG- 003', 'ADM- 003', 1 , '2013 - 08- 13' ,NULL)
insert into Pinjam values
( 'PJM- 004', 'BU - 002', 'ANG- 004', 'ADM- 002', 1 , '2013- 08- 20' ,NULL)
insert into Pinjam values
( 'PJM- 005', 'BU - 003', 'ANG- 005', 'ADM- 001', 2 , '2013- 08- 20' ,NULL)
Hasilnya bisa dilihat dengan perintah berikut :
select * from transaksi
select * from Buku
dengan cara ini datanya akan di insert dan otomatis juga jumlah buku yang ada pada tabel buku  akan di update :
================================
Kemudian membuat trigger update pada tabel buku dimana jumlah pinjam akan update dengan jumlah buku pada tabel buku
Berikut perintahya :
create trigger Ubah_Data_Pinjam on transaksi
after update
as
update Buku set
Buku. Jumlah_Buku =(Buku. Jumlah_Buku + deleted. Jumlah_Pinjam ) - inserted . Jum
lah_Pinjam from deleted, ins erted where Buku. Id_Buku= deleted. Id_Buku
print 'Data Pinjam Berhasil Diubah'
print 'Jumlah Buku Pada Table Buku Juga Berhasil Ter - Update'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())Print 'Nama Host : ' + HOST_NAME()
Untuk mencobanya kita bisa update dengan perintah :
update transaksi set Jumlah_Pinjam = 5 where Id_Pinjam= 'PJM- 003'
dan kita bisa melihatnya dengan perintah :
select * from transaksi
select * from Buku
dan berikut hasil updatenya :
==================================
Kemudian membuat trigger delete pada tabel transaksi dimana jumlah transaksi update dengan jumlah buku pada tabel buku :
Berikut perintahnya :
create trigger Hapus_Data_Pinjam on transaksi
after delete
as
update Buku set
Buku. Jumlah_Buku = Buku. Jumlah_Buku + deleted. Jumlah_Pinjam
from deleted where Buku. Id_Buku = deleted. Id_Buku
print 'Data Pinjam Berhasil Dihapus'
print 'Jumlah Buku Pada Tabe Buku Juga Berhasil Ter- Update'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())
Print 'Nama Host : ' + HOST_NAME()
Dan untuk ketikan perintah berikut ini untuk mencobanya :
delete from Pinjam where Id_Pinjam= 'PJM- 003'
dan untuk melihat hasilnya kita bisa mengetikan perintah berikut ini :
select * from Pinjam
select * from Buku
dan akan seperti ini :

=======================================
SHARE

Milan Tomic

Hi. I’m Designer of Blog Magic. I’m CEO/Founder of ThemeXpose. I’m Creative Art Director, Web Designer, UI/UX Designer, Interaction Designer, Industrial Designer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar