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
This comment has been removed by the author.
ReplyDeleteDicoba dulu bismillah
ReplyDelete