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 или мне нужно использовать данный обходной путь?