J'essaie d'utiliser l'instruction OUTPUT dans une procédure stockée afin de renvoyer l'ID d'une ligne nouvellement insérée. La procédure stockée est:Quel est le problème avec la syntaxe de cette instruction OUTPUT (SQL Server 2005)?
CREATE PROCEDURE PROC_RESTORE_REQUEST_TO_QUEUE
@cs_uri_stem varchar(900),
@cs_uri_query varchar(2500),
@date datetime,
@time datetime,
@queue_state smallint,
@process_id int,
@simulation_start_time bigint,
@num_failures smallint
AS
SET NOCOUNT ON
INSERT INTO [DD#WORK].[dbo].[ebhFifoQueue] ([cs-uri-stem],[cs-uri-query],[date],[time],[queue_state],[process_id],[simulation_start_time],[num_failures])
VALUES (@cs_uri_stem,@cs_uri_query,@date,@time,@queue_state,@process_id,@simulation_start_time,@num_failures)
OUTPUT INSERTED.id
Lorsque je tente de compiler cette procédure stockée, je reçois un message d'erreur:
syntaxe incorrecte près de « SORTIE ».
J'ai essayé plusieurs permutations de ce code sans succès (même message d'erreur), y compris le déplacement de la déclaration de sortie sur la même ligne que l'instruction INSERT. Savez-vous quel est le problème avec ma syntaxe? Merci d'avance pour votre aide,
-Eric
Je pense que si vous ne renvoyez qu'une seule valeur, alors utiliser un paramètre ouput (voir ma réponse) est un peu plus facile à utiliser à la fois depuis T-SQL ou un langage comme C#. –