Вам не нужно отдельное «если», чтобы проверить, существует ли уже пользователь. Вы можете поместить все это в один запрос:
IF (@Flag = 'Authenticate')
BEGIN
INSERT INTO UserLoginHistory(UserId, LastLoggedIn)
SELECT v.Userid, GETDATE()
FROM (VALUES (@UserId)) v(UserId)
WHERE EXISTS (SELECT 1
FROM UserInformation ui
WHERE ui.UserName = @UserName AND ui.Password = @UserPassword
);
SELECT ui.*
FROM UserInformation ui
WHERE ui.UserName = @UserName AND ui.Password = @UserPassword;
END;
Кроме того, меня беспокоит @UserPassword
. Надеюсь, это значение зашифровано! У вас не должно быть паролей в открытом виде где-либо в приложении, у которого есть пользователь, кроме вас, - даже для демонстрации или курса.