[ File # csp10909445, License # 3089529 ]
Licensed through http://www.canstockphoto.com in accordance with the End User License Agreement (http://www.canstockphoto.com/legal.php)
(c) Can Stock Photo Inc. / z_amir

Database praktikum pertemuan 10


Sintaks (Syntax)

 

Create Store Procedure

CREATE (PROC | PROCEDURE) procedure_name [( @parameter datatype, …..)]

AS query

 

Execute Store Procedure

[EXEC | EXECUTE] procedure_name [( @parameter datatype, …..)]

 

Trigger

CREATE TRIGGER ON table_name

FOR (INSERT | UPDATE | DELETE)

AS query

 

Cursor

DECLARE cursor_name CURSORFOR query

OPEN cursor_name

FETCH NEXT FROM cursor_name

WHILE @@FETCH_STATUS = 0

BEGIN

query

FETCH NEXT FROM cursor_name

END

CLOSE cursor_name

DEALLOCATE cursor_name

 

Tabel Relasional

Tabel Relasional
Tabel Relasional

Soal

/1.Buatlah stored procedure dengan nama sp1 untuk
menampilkan CustomerId, CustomerName, CustomerGender dan CustomerAddress
dari tabel MsCustomer sesuai dengan CustomerId yang diinput oleh user.
(create procedure)/

create procedure storep1 @id varchar(100)
as
select CustomerId, CustomerName, CustomerGender, CustomerAddress
from MsCustomer
where CustomerId = @id

exec storep1 ‘CU001’ –mirip jalanin create view

/2.Buatlah stored procedure dengan nama sp2 yang menerima parameter
berupa nama customer dengan ketentuan:
– Apabila panjang nama yang diinput adalah bilangan ganjil
maka akan ditampilkan pesan ‘Character Length of Customer Name is an Odd Number’.
– Apabila panjang nama yang diinput adalah bilangan genap
maka akan ditampilkan CustomerId, CustomerName, CustomerGender, TransactionId
dan TransactionDate dimana CustomerName mengandung nama yang diinput user.
(create procedure, len, like)/

create procedure sp2 @name varchar(100) –@name sebagai variabel, klo ga ada -> ambigu
as
if LEN(@name)%2=0
begin –mirip kurung kerawal
select a.CustomerId,CustomerName,CustomerGender,
TransactionId,TransactionDate
from MsCustomer a, HeaderSalonServices b
where a.CustomerId = b.CustomerId
and CustomerName = @name
end –mirip kurung kerawal
else
print ‘Ganjil’

exec sp2 ‘Franky’

/3.Buatlah stored procedure dengan nama sp3 untuk
meng-update StaffName, StaffGender dan StaffPhone
pada tabel MsStaff sesuai dengan StaffId, StaffName,
StaffGender dan StaffPhone yang diinput oleh user
kemudian tampilkan data yang telah di-update.
Apabila StaffId yang ingin di-update tidak ditemukan,
maka tampilkan pesan ‘Staff does not exists’.
(create procedure, exists, update)/

create procedure sp3 @id varchar(100), @name varchar(100),
@gender varchar(100), @phone varchar(100)
as
if exists( select * from MsStaff where StaffId = @id)
begin
update MsStaff set StaffName = @name,
StaffGender = @gender, StaffPhone = @phone
where StaffId = @id
select * from MsStaff
end
else
print ‘Tidak ada’

select * from MsStaff

begin tran
exec sp3 ‘SF001′,’A’,’B’,’C’
rollback

/4.Buatlah trigger dengan nama ‘trig1’ pada tabel MsCustomer
sehingga apabila ada data yang diubah akan menampilkan
data-data MsCustomer sebelum dan sesudah di-update.(create trigger, union)/

create trigger trig1 on MsCustomer
for update
as
begin
select * from inserted
union
select * from deleted
end

begin tran
update MsCustomer set customerName = ‘Budi’
rollback

/5.Buatlah trigger dengan nama ‘trig2’ pada tabel MsCustomer
sehingga apabila dilakukan insert data baru akan menghapus data
pertama pada tabel MsCustomer tersebut.
(create trigger, top, delete)/

create trigger trig2 on MsCustomer
for insert
as
delete MsCustomer where customerId =
(select top 1 customerId from MsCustomer)

begin tran
insert into MsCustomer(CustomerId, CustomerName)
values(‘CU006′,’Budi’)
select * from MsCustomer
rollback

/6.Buatlah trigger dengan nama ‘trig3’ pada tabel MsCustomer
sehingga apabila data MsCustomer dihapus akan memasukkan data-data
yang terhapus kedalam tabel Removed. Jika tabel Removed belum dibuat,
maka buatlah tabel Removed dan masukkan data-data yang dihapus dari table MsCustomer.
(create trigger, object_id, is not null, insert, select into)/

create trigger trig3 on MsCustomer
for delete
as
begin
if object_id(‘removed’) is not null –sudah ada table removed
insert into removed select * from deleted
else –blm ada tbl removed
select * into removed from deleted
end

begin tran
delete from MsCustomer
where customerId = ‘CU001’
select* from MsCustomer
select* from removed
rollback

/7.Buatlah cursor dengan nama ‘cur1’ yang digunakan untuk
mengecek panjang karakter dari StaffName apakah bilangan ganjil atau genap.
(declare cursor, len)/

declare cur1 cursor for select staffName from MsSTaff
open cur1
declare @name varchar(100)
fetch next from cur1 into @name
while @@fetch_status = 0
begin
if len(@name)%2=0
print @name + ‘ adalah genap’
else
print @name + ‘ adalah ganjil’
fetch next from cur1 into @name
end
close cur1
deallocate cur1

–@ -> local var, @@ -> global var, # -> loval temp, ##-> global temp

drop procedure sp2
drop trigger trig1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s