Valor de retorno en el procedimiento almacenado de SQL Server

Tengo un procedimiento almacenado que tiene una instrucción if. Si el número de filas contadas es mayor que 0, entonces debería establecer el único parámetro de salida@UserId a 0

in embargo, solo devuelve un valor en la segunda parte de la consulta.

@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