Senin, 21 Desember 2015

Membuat Trigger Dalam Database SQL Server 2008

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 buat tabel dalam perpustakaan.
Membuat tabel anggota perpustakaan
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))
       
Ø  Membuat tabel buku perpustakaan
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 )

Ø  Membuat tabel administrasi perpustakaan
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))

Ø  Membuat tabel transaksi pinjam dan kembali buku perpustakaan
create table pinjam(
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)
Sekarang kita akan mengisi table yang telah kita buat.
Ø  Input data tabel anggota perpustakaan
insert into Anggota values ('ANG-001','ADUL SUKIRMAN','JL.
SENTOSA NO.12 MEDAN','JAKARTA','1990-09-21','LAKILAKI','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','LAKILAKI','MAHASISWA','085212343590')
insert into Anggota values ('ANG-004','DONO SANGKURIA NG','JL.
KRAKATAU NO.18 MARELAN','MANDAILING NATAL','1980-03-09','LAKILAKI', 'WARTAWAN','083129876578')
insert into Anggota values ('ANG-005','EDY SUPONO','JL.
PRAJURIT NO. 90 MARTUBUNG','ACEH', '1989- 06- 05','LAKILAKI','BURUH PABRIK','061-6648976')

Ø  Input data tabel buku perpustakaan
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)

Ø  Input data tabel administrasi perpustakaan
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','LAKILAKI','083123454312')
insert  into Administrasi  values ( 'ADM- 005', 'SUMARDI
ALFIANTO' , 'JL. MANDOR NO. 14 MEDAN','BOGOR','1990-09-28','LAKI-LAKI', '061-6648989')

Membuat trigger
  Membuat trigger insert data 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()
insert into Anggota values ( 'ANG- 006', 'M. RHIFKY', 'JL. SENTOSA INDAH NO. 21
MEDAN', 'MEDAN', '1980- 06- 23' , 'LAKI- LAKI', 'GURU' , '085763155905')
select * from  Anggota
                              
  Membuat 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()
insert  into Buku values ( 'BU - 006', 'SQL SERVER 2008' , 'PROF. WAYAHDI' , 'ANDI
OFFSET', '2013' , 'R- 03' , 25)
select * from Buku
  Membuat trigger insert data administrasi---
create trigger trig_Admin
on Administrasi for insert
as
print  'Data Admin Berhasil Ditambahkan'
Print 'Dimodifikasi : ' + CONVERT( VARCHAR , GETDATE())
Print 'Nama Host : ' + HOST_NAME()
insert into Administrasi values ( 'ADM-  006', 'PUSPITA SARI', 'JL. SETIA BUDI  NO.
43 MEDAN' , 'SEMARANG', '1993- 10- 01' , 'PEREMPUAN' , '085743218989')
select * from Administrasi
Berhubung contoh dalam modul tidak bias di buat pada SQLnya saya, maka saya mengganti dengan cara saya, tapi tujuannya sama.
insert into pinjam (Id_Pinjam,Id_buku,Id_Anggota,Id_Admin,Jumlah_Pinjam,Tgl_Kembali)
values ('PJM- 001','BU-005','ANG-001','ADM- 003', 1 , '2013- 08- 09');
insert into pinjam (Id_Pinjam,Id_buku,Id_Anggota,Id_Admin,Jumlah_Pinjam,Tgl_Kembali)
values ('PJM-004','BU-002','ANG-004','ADM-002', 1 , '2013- 08- 20');
insert into pinjam (Id_Pinjam,Id_buku,Id_Anggota,Id_Admin,Jumlah_Pinjam,Tgl_Kembali)
values ('PJM-005','BU-003','ANG-005','ADM-001', 2 , '2013-08-20');
create trigger Hapus_Data_Pinjam on Pinjam
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()
delete from Pinjam where Id_Pinjam= 'PJM- 003'


Tidak ada komentar:

Posting Komentar