我想在存储过程中使用OUTPUT语句,以便返回新插入的行的ID。存储过程是:此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
当我尝试编译此存储过程,我得到一个错误信息:
附近有语法错误“输出”。
我试图此代码的几个排列无济于事(相同的错误消息),包括移动OUTPUT语句到同一行INSERT语句。你知道我的语法有什么问题吗?在此先感谢您的帮助,
-Eric
我认为,如果您只返回一个值,那么使用输出参数(请参阅我的答案)更容易从T-SQL或类似C#的语言中使用。 – 2010-10-25 18:14:35