sql-server insert语句输出子句不起作用

时间:2013-04-19 07:19:11

标签: sql-server insert output

我做了一些研究,发现获取新插入行的id的最佳解决方案是输出子句。我是第一次使用insert语句输出子句而无法弄明白。

这是我的sql代码。这个sql出了什么问题?

ALTER PROCEDURE [dbo].[MedBul_Insert_Message]      
                                              (@ParentID int, @MessageFrom varchar(500),@MessageTo varchar(500), @MessageSubject varchar(500),@MessageBody varchar(4000),@MessageIsRead int)
AS
BEGIN
    SET LANGUAGE Turkish;

Declare @message_id table (MessageID int);

insert into Messages output INSERTED.ID INTO @message_id (ParentID ,MessageFrom ,MessageSubject ,MessageBody ,MessageIsRead ) values(@ParentID ,@MessageFrom ,@MessageSubject ,@MessageBody ,@MessageIsRead );


END

1 个答案:

答案 0 :(得分:5)

OUTPUT子句应该在列列表后

insert into Messages (ParentID ,MessageFrom ,MessageSubject ,MessageBody ,MessageIsRead )
output INSERTED.ID INTO @message_id (MessageID)
values(@ParentID ,@MessageFrom ,@MessageSubject ,@MessageBody ,@MessageIsRead );

请参阅INSERT文档。

(而且,显然,你现在需要用@message_id的内容实际,但我认为你还没有写过或者没有在你的问题中显示,存储过程的其余部分)