ada tiga cara yang dapat Anda gunakan: nilai RETURN, dan parameter OUTPUT dan kumpulan hasil
JUGA, hati-hati jika Anda menggunakan pola: SELECT @Variable=column FROM table ...
jika ada beberapa baris yang dikembalikan dari kueri, @Variable Anda hanya akan berisi nilai dari baris terakhir yang dikembalikan oleh kueri.
KEMBALIKAN NILAI
karena kueri Anda mengembalikan bidang int, setidaknya berdasarkan bagaimana Anda menamainya. Anda bisa menggunakan trik ini:
CREATE PROCEDURE GetMyInt
( @Param int)
AS
DECLARE @ReturnValue int
SELECT @ReturnValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN @ReturnValue
GO
dan sekarang panggil prosedur Anda seperti:
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC @SelectedValue = GetMyInt @Param
PRINT @SelectedValue
ini hanya akan bekerja untuk INT, karena RETURN hanya dapat mengembalikan satu nilai int dan null diubah menjadi nol.
PARAMETER OUTPUT
Anda dapat menggunakan parameter output:
CREATE PROCEDURE GetMyInt
( @Param int
,@OutValue int OUTPUT)
AS
SELECT @OutValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
dan sekarang panggil prosedur Anda seperti:
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC GetMyInt @Param, @SelectedValue OUTPUT
PRINT @SelectedValue
Parameter keluaran hanya dapat mengembalikan satu nilai, tetapi dapat berupa tipe data apa pun
RESULT SET
untuk hasil set membuat prosedur seperti:
CREATE PROCEDURE GetMyInt
( @Param int)
AS
SELECT MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
gunakan seperti:
DECLARE @ResultSet table (SelectedValue int)
DECLARE @Param int
SET @Param=1
INSERT INTO @ResultSet (SelectedValue)
EXEC GetMyInt @Param
SELECT * FROM @ResultSet
kumpulan hasil dapat memiliki banyak baris dan banyak kolom dari semua tipe data