Une autre option serait comme valeur de retour pour la procédure stockée (ce n'est pas ce que je suggère cependant, car c'est généralement mieux pour les valeurs d'erreur).
Je l'ai inclus à la fois lorsqu'il insère une seule ligne dans les cas où la procédure stockée était consommée à la fois par d'autres procédures SQL et par un frontal qui ne pouvait pas fonctionner avec les paramètres OUTPUT (IBATIS dans .NET je crois):
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
Le paramètre de sortie est plus facile à utiliser dans T-SQL lors de l'appel à partir d'autres procédures stockées IMO, mais certains langages de programmation ont une prise en charge médiocre ou inexistante des paramètres de sortie et fonctionnent mieux avec les ensembles de résultats.