我在存储过程中有这段代码:
BEGIN
SET @UserId = NULL;
IF (@Username IS NOT NULL)
BEGIN
EXECUTE SP_ADD_USER @Username, @UserId OUTPUT;
END
EXECUTE SP_ADD_ALERT @Name, @AlertType, @AlertId OUTPUT;
INSERT INTO AlertLogs (Datastamp, AlertID, UserID, NotificationMessage)
VALUES (@Datastamp, @AlertId, @UserId, @EmailMessage);
SET @AlertLogId = SCOPE_IDENTITY();
END
@AlertLogId
是一个输出参数,我想将其分配给最后一次插入的结果AlertLogs
桌子。我必须包括吗
INSERT INTO AlertLogs (Datastamp, AlertID, UserID, NotificationMessage)
VALUES (@Datastamp, @AlertId, @UserId, @EmailMessage);
在一个新的块(一个新的开始/结束范围)中,以便SCOPE_IDENTITY()
能正常工作吗?
(并且不报告例如在中完成的插入记录的最后一个 IDSP_ADD_ALERT
例如 ?)