alor de retorno no procedimento armazenado do SQL Serv

Tenho um procedimento armazenado que possui uma instrução if. Se o número de linhas contadas for maior que 0, ele deverá definir o único parâmetro de saída@UserId a 0

No entanto, ele retorna apenas um valor na segunda parte da consult

@EmailAddress varchar(200),
@NickName varchar(100),
@Password varchar(150),
@Sex varchar(50),
@Age int,
@EmailUpdates int,
@UserId int OUTPUT
IF 
    (SELECT COUNT(UserId) FROM RegUsers WHERE EmailAddress = @EmailAddress) > 0
    BEGIN
        SET @UserId = 0
    END
ELSE
    BEGIN
        INSERT INTO RegUsers (EmailAddress,NickName,PassWord,Sex,Age,EmailUpdates) VALUES (@EmailAddress,@NickName,@Password,@Sex,@Age,@EmailUpdates)
        SELECT SCOPE_IDENTITY()
    END

END

questionAnswers(8)

yourAnswerToTheQuestion