Sto cercando di utilizzare l'istruzione OUTPUT in una stored procedure per restituire l'ID di una riga appena inserita. La stored procedure è:Cosa c'è di sbagliato nella sintassi di questa istruzione 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
Quando provo a compilare questa stored procedure, ricevo un messaggio di errore:
la sintassi non corretta in prossimità 'USCITA'.
Ho provato diverse permutazioni di questo codice senza alcun risultato (stesso messaggio di errore), tra cui si muove la dichiarazione OUTPUT sulla stessa linea, come l'istruzione INSERT. Sai qual è il problema con la mia sintassi? Grazie in anticipo per il vostro aiuto,
-Eric
Penso che se si restituisce solo un singolo valore, quindi utilizzando un parametro ouput (vedi la mia risposta) è un po 'più facile consumare sia da T-SQL che da un linguaggio come C#. –