Inną opcją byłaby wartość zwracana dla procedury składowanej (jednak nie sugeruję tego, ponieważ zwykle jest to najlepsze dla wartości błędów).
Dołączyłem go jako oba, gdy wstawia pojedynczy wiersz w przypadkach, w których procedura składowana była zużywana przez obie inne procedury SQL i interfejs, który nie mógł działać z parametrami OUTPUT (wierzę, że IBATIS w .NET):
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
Parametr wyjściowy jest łatwiejszy w obsłudze w T-SQL podczas wywoływania z innych procedur składowanych IMO, ale niektóre języki programowania mają słabą obsługę parametrów wyjściowych lub nie mają jej wcale i działają lepiej z zestawami wyników.