MS SSQL: como usar caso quando como parâmetro exec

Usando o SQL Server 2008 R2 Estou tentando executar um procedimento armazenado usando exec com dois parâmetros. O primeiro parâmetro é um identificador exclusivo. O segundo parâmetro pode ser '2' ou '3'.

Estou usando uma função escrita que espera o identificador exclusivo e retorna true (1) se o caso apontar para o tipo A ou false (0) se o caso for do tipo B. Semelhante ao VB.Net IIF ou a C # equivalente eu pensei em usar Case When para recuperar o valor usando a função mencionada.

Eu esperava que fosse algo parecido com isto:

exec spAddCaseToDeletedInso @Case, (select case when dbo.getCaseOwnerByCaseId(@Case) = 1 then '3' else '2' end)

Tudo o que recebo é um erro de sintaxe.

Eu sei que posso solucionar esse problema usando o seguinte método:

declare @CaseOwner as char(1) = (select case when dbo.getCaseOwnerByCaseId(@Case) = 1 then '3' else '2' end)
exec spAddCaseToDeletedInso @Case, @CaseOwner

Existe uma maneira de usar o Case When para especificar um valor dentro da linha exec ou preciso usar a solução alternativa fornecida?

questionAnswers(1)

yourAnswerToTheQuestion