Opsi lain adalah sebagai nilai kembalian untuk prosedur tersimpan (saya tidak menyarankan ini, karena biasanya itu yang terbaik untuk nilai kesalahan).
Saya telah memasukkannya sebagai keduanya ketika memasukkan satu baris dalam kasus di mana prosedur tersimpan sedang dikonsumsi oleh prosedur SQL lainnya dan front-end yang tidak dapat bekerja dengan parameter OUTPUT (IBATIS di .NET saya percaya):
CREATE PROCEDURE My_Insert
@col1 VARCHAR(20),
@new_identity INT OUTPUT
AS
BEGIN
SET NOCOUNT ON
INSERT INTO My_Table (col1)
VALUES (@col1)
SELECT @new_identity = SCOPE_IDENTITY()
SELECT @new_identity AS id
RETURN
END
Parameter keluaran lebih mudah digunakan dalam T-SQL saat memanggil dari prosedur tersimpan IMO lainnya, tetapi beberapa bahasa pemrograman memiliki dukungan yang buruk atau tidak ada untuk parameter keluaran dan bekerja lebih baik dengan kumpulan hasil.