У меня есть этот кусок кода в хранимой процедуре:
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()
работал правильно?
(а не сообщать, например, последний идентификатор вставленной записи, сделанный в SP_ADD_ALERT
, например?)