SQL Server comprendre SCOPE_IDENTITY()

J'ai ce bout de code dans une procédure stockée:

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 est un paramètre de sortie que je veux être assigné à la suite de la dernière insertion dans AlertLogs table. Dois-je inclure

INSERT INTO AlertLogs (Datastamp, AlertID, UserID, NotificationMessage) 
        VALUES (@Datastamp, @AlertId, @UserId, @EmailMessage);

dans un nouveau bloc (un nouveau début/fin d'étendue) pour SCOPE_IDENTITY() de travailler correctement ?
(et pas de rapport, par exemple le dernier l'ID d'un enregistrement inséré fait dans SP_ADD_ALERT par exemple ?)

InformationsquelleAutor Ghita | 2011-11-22