-- No. 1
--function fCekMhs untuk mengecek nama
alter function fCekMhs (@nama as varchar(100))
returns numeric
as
begin
--set nilai @jumlah
return (select count(*)
from mahasiswa
where nama = @nama)
end
--hapus function fCekMhs
drop function fCekMhs
create proc sp_GetNilaiMhs @nama as varchar(100)
as
begin
--deklarasi variabel untuk menampung jumlah mahasiswa yang terdaftar
declare @jumlah as numeric
--set nilai pada variabel jumlah dengan memanggil function fCekMhs
set @jumlah = dbo.fCekMhs(@nama)
--cek jika jumlah = 0 => data tidak ada, maka akan mengembalikan nilai -1
if @jumlah = 0
begin
return -1
end
else
begin
select m.nama, n.tugas, n.uts, n.uas
from mahasiswa m, nilai n
where m.nim = n.nim and
nama = @nama;
end
end
--hapus procedure sp_GetNilaiMhs
drop proc sp_GetNilaiMhs
--deklarasi variabel untuk menampung hasil return dan non return
declare @jumlahData INT;
--eksekusi procedure sp_GetNilaiMhs
exec @jumlahData = sp_GetNilaiMhs 'Cinta';
print @jumlahData;
--No. 2
begin transaction
--function fBuatNIM untuk format NIM
create function fBuatNIM (@nim as varchar(11))
returns varchar(11)
as
begin
return right(year(getdate()),2)+'41010'+right('0000'+@nim,4);
end
--hapus function fBuatNIM
drop function fBuatNIM
--procedure sp_InsertMhs untuk menghitung seluruh data MK
create proc sp_InsertMhs @nim_urut as varchar(11),@nama as varchar(100),@alamat as varchar(100),
@kota as varchar(50),@jns_kelamin as char(1),@sts_nikah as char(1)
as
begin
--deklarasi variabel untuk menampilkan jumlah mahasiswa
declare @jumlah as numeric;
--set nilai jumlah mahasiswa sebelum ditambahkan
set @jumlah = (select count(*) from mahasiswa);
--cetak jumlah mahasiswa sebelum ditambahkan
print 'jumlah data mahasiswa (sebelum)' + convert(char,@jumlah);
--query memasukkan data mahasiswa
insert into mahasiswa
values (dbo.fBuatNIM(@nim_urut), @nama, @alamat, @kota, @jns_kelamin, @sts_nikah)
--set nilai jumlah mahasiswa sesudah ditambahkan
set @jumlah = (select count(*) from mahasiswa);
--cetak jumlah mahasiswa sesudah ditambahkan
print 'jumlah data mahasiswa (sesudah)' + convert(char,@jumlah);
end
--eksekusi procedure sp_InsertMhs
sp_InsertMhs '58','Edo Yonatan K.','Gunung Sari Indah L. 39','Surabaya','P','B'
--hapus procedure sp_InsertMhs
drop proc sp_InsertMhs
--hasilnya ditampilkan dalam bentuk tabel
select * from mahasiswa
rollback transaction
0 komentar:
Posting Komentar