Guest User

Untitled

a guest
Mar 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. create table tb_pengiriman(
  2. id_pengiriman char(5) not null primary key
  3. constraint cek_id_pengiriman check (id_pengiriman like('PE[0-9][0-9][0-9]')),
  4. provinsi varchar(30) not null,
  5. kota varchar(30) not null,
  6. harga_ongkir bigint null
  7. constraint cek_harga_ongkir check (harga_ongkir >-1));
  8.  
  9. alter table tb_pengiriman add
  10. constraint cek_kota_banten check ((provinsi = 'Banten') and (kota in ('Tangerang','Serang','Cilegon','Tangerang Selatan'))),
  11.  
  12. create trigger tr_pengiriman
  13. on tb_pengiriman
  14. after insert
  15. as
  16. begin
  17. declare @id_pengiriman char(5), @provinsi varchar(30), @kota varchar(30);
  18. select @id_pengiriman = id_pengiriman from inserted;
  19. select @provinsi = provinsi from inserted;
  20. select @kota = kota from inserted;
  21. exec sp_pengiriman @id_pengiriman,@provinsi,@kota;
  22. end
  23. go
  24.  
  25. create procedure sp_pengiriman
  26. @id_pengiriman char(5), @provinsi varchar(30), @kota varchar(30)
  27. As
  28. Begin
  29. --proses kalkulasi ongkos kirim
  30. if(@kota = 'Tangerang')
  31. begin
  32. update tb_pengiriman set harga_ongkir = 20000 where id_pengiriman = @id_pengiriman
  33. end
  34. else if(@kota = 'Serang')
  35. begin
  36. update tb_pengiriman set harga_ongkir = 50000 where id_pengiriman = @id_pengiriman
  37. end
  38. else if(@kota = 'Tangerang Selatan')
  39. begin
  40. update tb_pengiriman set harga_ongkir = 15000 where id_pengiriman = @id_pengiriman
  41. end
  42. else if(@kota = 'Cilegon')
  43. begin
  44. update tb_pengiriman set harga_ongkir = 30000 where id_pengiriman = @id_pengiriman
  45. end
  46. else
  47. begin
  48. rollback transaction
  49. print 'kota tidak terdaftar'
  50. end
  51. end
  52. go
Add Comment
Please, Sign In to add comment