0

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

这是我的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
4

1 回答 1

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一些实际的事情,但我认为你还没有写或者只是没有在你的问题中显示,存储过程的其余部分)

于 2013-04-19T07:27:11.083 回答