Jadi tujuan kita memanggil atau mengeksekusi sebuah Procedure adalah untuk mendapatkan hasil. Hasil bisa berupa sebuah eksekusi perintah SQL atau berupa keluaran2. Nah menurut MSDN, ada 4 macam keluaran yang bisa dihasilkan oleh Stored Procedure ini, yaitu :
- Output Parameter
- Return Code
- Result Set, dan
- Global Cursor
Output Parameter
Keluaran ini adalah parameter2 pada SP yang kita buat. Parameter2 ini bisa kita tentukan sendiri namanya, tipe datanya dengan menambahkan keyword OUTPUT dibelakangnya. Nih contohnya :
CREATE PROCEDURE dbo.sp_OutputParameters
@input1 int ,
@input2 int ,
@outputnya int OUTPUT
AS
BEGIN
set @outputnya = @input1 + @input2
END
coba kita panggil :
declare @hasil int
exec dbo.sp_OutputParameters 1, 1, @hasil OUTPUT
print (@hasil)
Return Code
Ini adalah sebuah nilai yang dihasilkan pada tiap eksekusi SP. Nilainya selalu integer. Kalau eksekusi SP sukses, hasilnya adalah 0. Nilai ini bisa kita tentukan dengan menggunakan keyword return.
Kita coba panggil SP sebelumnya
declare @retval int, @hasil int
exec @retval = dbo.sp_OutputParameters 1, 1, @hasil output
print(@hasil)
print(@retval)
Sekarang kita ubah SP sebelumnya
CREATE PROCEDURE dbo.sp_OutputParameters
@input1 int ,
@input2 int ,
@outputnya int OUTPUT
AS
BEGIN
set @outputnya = @input1 + @input2
return 1000
END
Trus kita panggil lagi
declare @retval int, @hasil int
exec @retval = dbo.sp_OutputParameters 1, 1, @hasil output
print(@hasil)
print(@retval)
Result Set
Result Set ini adalah hasil berupa record2 yang kita dapatkan dari operasi select dalam SP. Langsung saja contohnya...
CREATE PROCEDURE dbo.sp_ResultSet
AS
BEGIN
select * from dbo.TesA
END
Mari lagi2 kita panggilnya
exec dbo.sp_ResultSet
dan ini hasilnya :

Global Cursor
Cursor sebagai output adalah parameter bertipe CURSOR pada SP yang dibelakangnya diikuti keyword VARYING OUTPUT. Contohhhh....
CREATE PROCEDURE dbo.sp_GlobalCursor
@CursorSaya CURSOR VARYING OUTPUT
AS
BEGIN
set @CursorSaya = CURSOR for
SELECT * FROM dbo.TesA
OPEN @CursorSaya
END
Panggilllll....
declare @CursorHasil CURSOR,
@IDHasil int
exec dbo.sp_GlobalCursor @CursorHasil OUTPUT
fetch next from @CursorHasil
into @IDHasil
while @@FETCH_STATUS = 0
begin
print(@IDHasil)
fetch next from @CursorHasil
into @IDHasil
end
CLOSE @CursorHasil
DEALLOCATE @CursorHasil
Dan ini hasilnya
Semoga bermanfaat :D
Saya tidak akan membahas mengenai apa itu Stored Procedure, silahkan dibaca sendiri di sini hehe
Jadi tujuan kita memanggil atau mengeksekusi sebuah Procedure adalah untuk mendapatkan hasil. Hasil bisa berupa sebuah eksekusi perintah SQL atau berupa keluaran2. Nah menurut MSDN, ada 4 macam keluaran yang bisa dihasilkan oleh Stored Procedure ini, yaitu :
Output Parameter
Keluaran ini adalah parameter2 pada SP yang kita buat. Parameter2 ini bisa kita tentukan sendiri namanya, tipe datanya dengan menambahkan keyword OUTPUT dibelakangnya. Nih contohnya :
coba kita panggil :
Return Code
Ini adalah sebuah nilai yang dihasilkan pada tiap eksekusi SP. Nilainya selalu integer. Kalau eksekusi SP sukses, hasilnya adalah 0. Nilai ini bisa kita tentukan dengan menggunakan keyword return.
Kita coba panggil SP sebelumnya
Sekarang kita ubah SP sebelumnya
Trus kita panggil lagi
Result Set
Result Set ini adalah hasil berupa record2 yang kita dapatkan dari operasi select dalam SP. Langsung saja contohnya...
Mari lagi2 kita panggilnya
dan ini hasilnya :

Global Cursor
Cursor sebagai output adalah parameter bertipe CURSOR pada SP yang dibelakangnya diikuti keyword VARYING OUTPUT. Contohhhh....
Panggilllll....
Dan ini hasilnya
Semoga bermanfaat :D
Jadi tujuan kita memanggil atau mengeksekusi sebuah Procedure adalah untuk mendapatkan hasil. Hasil bisa berupa sebuah eksekusi perintah SQL atau berupa keluaran2. Nah menurut MSDN, ada 4 macam keluaran yang bisa dihasilkan oleh Stored Procedure ini, yaitu :
- Output Parameter
- Return Code
- Result Set, dan
- Global Cursor
Output Parameter
Keluaran ini adalah parameter2 pada SP yang kita buat. Parameter2 ini bisa kita tentukan sendiri namanya, tipe datanya dengan menambahkan keyword OUTPUT dibelakangnya. Nih contohnya :
CREATE PROCEDURE dbo.sp_OutputParameters
@input1 int ,
@input2 int ,
@outputnya int OUTPUT
AS
BEGIN
set @outputnya = @input1 + @input2
END
coba kita panggil :
declare @hasil int
exec dbo.sp_OutputParameters 1, 1, @hasil OUTPUT
print (@hasil)
Return Code
Ini adalah sebuah nilai yang dihasilkan pada tiap eksekusi SP. Nilainya selalu integer. Kalau eksekusi SP sukses, hasilnya adalah 0. Nilai ini bisa kita tentukan dengan menggunakan keyword return.
Kita coba panggil SP sebelumnya
declare @retval int, @hasil int
exec @retval = dbo.sp_OutputParameters 1, 1, @hasil output
print(@hasil)
print(@retval)
Sekarang kita ubah SP sebelumnya
CREATE PROCEDURE dbo.sp_OutputParameters
@input1 int ,
@input2 int ,
@outputnya int OUTPUT
AS
BEGIN
set @outputnya = @input1 + @input2
return 1000
END
Trus kita panggil lagi
declare @retval int, @hasil int
exec @retval = dbo.sp_OutputParameters 1, 1, @hasil output
print(@hasil)
print(@retval)
Result Set
Result Set ini adalah hasil berupa record2 yang kita dapatkan dari operasi select dalam SP. Langsung saja contohnya...
CREATE PROCEDURE dbo.sp_ResultSet
AS
BEGIN
select * from dbo.TesA
END
Mari lagi2 kita panggilnya
exec dbo.sp_ResultSet
dan ini hasilnya :

Global Cursor
Cursor sebagai output adalah parameter bertipe CURSOR pada SP yang dibelakangnya diikuti keyword VARYING OUTPUT. Contohhhh....
CREATE PROCEDURE dbo.sp_GlobalCursor
@CursorSaya CURSOR VARYING OUTPUT
AS
BEGIN
set @CursorSaya = CURSOR for
SELECT * FROM dbo.TesA
OPEN @CursorSaya
END
Panggilllll....
declare @CursorHasil CURSOR,
@IDHasil int
exec dbo.sp_GlobalCursor @CursorHasil OUTPUT
fetch next from @CursorHasil
into @IDHasil
while @@FETCH_STATUS = 0
begin
print(@IDHasil)
fetch next from @CursorHasil
into @IDHasil
end
CLOSE @CursorHasil
DEALLOCATE @CursorHasil
Dan ini hasilnya
Semoga bermanfaat :D