Sua suposição está simplesmente errada. Verifique a
EXECUTE documentation
Execute a stored procedure or function
[ { EXEC | EXECUTE } ]
{
[ @return_status = ]
{ module_name [ ;number ] | @module_name_var }
[ [ @parameter = ] { value
| @variable [ OUTPUT ]
| [ DEFAULT ]
}
]
[ ,...n ]
[ WITH RECOMPILE ]
}
[;]
Como você vê, você pode passar como
@parameter
:- valor
- @variável
- PADRÃO
Então você precisa usar a variável para manter o resultado da chamada de função e passá-lo para o procedimento armazenado.