MS SSQL: как использовать случай, когда в качестве параметра exec

Использование SQL Server 2008 R2 Я пытаюсь выполнить хранимую процедуру, используя exec с двумя параметрами. Первый параметр - это уникальный идентификатор. Вторым параметром может быть «2» или «3».

Я использую письменную функцию, которая ожидает уникальный идентификатор и возвращает true (1), если регистр, на который указывает идентификатор, имеет тип A или false (0), если регистр типа B. Аналогично VB.Net IIF или Эквивалент C # Я думал об использовании Case When для получения значения с помощью упомянутой функции.

Я ожидал, что это будет выглядеть примерно так:

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

Все, что я получаю, это синтаксическая ошибка.

Я знаю, что могу обойти эту проблему, используя следующий метод:

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

Есть ли способ использовать Case When для указания значения в строке exec или мне нужно использовать данный обходной путь?

Ответы на вопрос(1)

Ваш ответ на вопрос