Další možností by byla návratová hodnota pro uloženou proceduru (nedoporučuji to však, protože to je obvykle nejlepší pro chybové hodnoty).
Zahrnul jsem to jako obojí, když vkládá jeden řádek v případech, kdy byla uložená procedura spotřebována jak jinými SQL procedurami, tak front-endem, který nemohl pracovat s parametry OUTPUT (IBATIS v .NET věřím):
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
S výstupním parametrem se v T-SQL snáze pracuje při volání z jiných uložených procedur IMO, ale některé programovací jazyky mají špatnou nebo žádnou podporu výstupních parametrů a lépe pracují se sadami výsledků.