Belajar Database SQL Server Untuk Pemula Part2

Melanjutkan postingan Sebelumnya tentang belajar database SQL Server, pada postingan seblumnya saya sudah sharing cara membuat database, membuat table, alter table, dan insert, update, delete, select data di SQL Server.

Pada postingan kali saya akan sharing tentang stored procedure, stored procedure adalah sekumpulan program/query SQL yang tersimpan didalam database dimana didalam stored procedure ini kita bisa melakukan insert, update, delete, select data dan bisa juga memanggil stored procedure lain.

pada postingan Sebelumnya sudah membuat table TB_SISWA seperti berikut :



1. Membuat Stored Procedure Insert Data

CREATE PROCEDURE [dbo].[sp_InsertData] --Nama Stored Procedure
 -- Stored Procedure parameter
 @nis varchar(10),
 @nama varchar(50),
 @alamat varchar(100),
 @tgl_lahir date,
 @j_kelamin varchar(10)
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
  -- Insert statements for procedure here
 INSERT INTO TB_SISWA values(@nis,@nama,@alamat,@tgl_lahir,@j_kelamin)

END

untuk mencoba stored procedure insert data apakah sudah berhasil atau tidak tuliskan query berikut :

sp_InsertData '10001','Budi','Malang','2010-01-01','Laki-laki'

lalu kita coba select data dari table tb_siswa

select * from TB_SISWA



jika kita coba menjalankan query

sp_InsertData '10001','Budi','Malang','2010-01-01','Laki-laki'
akan muncul error seperti ini karena siswa dengan nis 10001 sudah ada didalam table tb_siswa



2. Stored Procedure Update Data

CREATE PROCEDURE [dbo].[sp_UpdateData] --Nama Stored Procedure
 -- Stored Procedure parameter
 @nis varchar(10),
 @nama varchar(50),
 @alamat varchar(100),
 @tgl_lahir date,
 @j_kelamin varchar(10)
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
        
 UPDATE TB_SISWA SET nama = @nama, alamat = @alamat, tg_lahir = @tgl_lahir,
        j_kelamin = @j_kelamin where nis = @nis

END

menjalankan stored procedure update data :

sp_UpdateData '10001','Budi Kuncoro','Surabaya','2010-01-01','Laki-laki'

dan hasilnya akan seperti berikut :


jika kita menjalankan query update tapi dengan nomor induk siswa yang belum ada di tb_siswa tidak akan terlihat error seperti berikut :

sp_UpdateData '10002','Budi Kuncoro','Surabaya','2010-01-01','Laki-laki'



kita update stored procedure sp_updateData menjadi seperti berikut :

ALTER PROCEDURE [dbo].[sp_UpdateData] --Nama Stored Procedure
 -- Stored Procedure parameter
 @nis varchar(10),
 @nama varchar(50),
 @alamat varchar(100),
 @tgl_lahir date,
 @j_kelamain varchar(10)
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
    
 if NOT EXISTS(select * from tb_siswa where nis = @nis)
  begin
   select 'Data siswa tidak ditemukan'
  end
 else    
  UPDATE TB_SISWA SET nama = @nama, alamat = @alamat, 
                tg_lahir = @tgl_lahir, j_kelamin = @j_kelamain where nis = @nis

END

kita tambahkan kondisi pengecekan apakah data siswa berdasarkan nis sudah ada di table apa belum, jika tidak ada akan muncul Data siswa tidak ditemukan




3. Stored Procedure Delete Data

CREATE PROCEDURE [dbo].[sp_DeleteData] --Nama Stored Procedure
 -- Stored Procedure parameter
 @nis varchar(10)
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
    
 if NOT EXISTS(select * from tb_siswa where nis = @nis)
  begin
   select 'Data siswa tidak ditemukan'
  end
 else    
                begin
          DELETE TB_SISWA where nis = @nis
                        select 'Data siswa berhasil dihapus'
                end

END




4. Stored Procedure Select Data

CREATE PROCEDURE [dbo].[sp_GetData] --Nama Stored Procedure
 -- Stored Procedure parameter
 @nis varchar(10)
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
        
        if (@nis = '')
          begin
             select * from tb_siswa
          end
        else
 if NOT EXISTS(select * from tb_siswa where nis = @nis)
  begin
   select 'Data siswa tidak ditemukan'
  end
 else    
  select * from TB_SISWA where nis = @nis

END





Comments

Post a Comment

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

IT Asset Management Dengan PHP MySQL

Laravel - Sistem Informasi Perpustakaan Sederhana Laravel