Вы можете сделать что-то вроде этого:
SET @SQL = CASE @Type
WHEN 1 THEN
@SQL1
WHEN 2 THEN
@SQL2
ELSE
@SQL3
END
EXEC(@SQL)
ОБНОВЛЕНИЕ 9/18 / 2016
ПРИМЕЧАНИЕ. Это простое и быстрое решение, но имейте в виду, что это не долгосрочное решение, которое будет реализовано в производственных средах.
Я согласен с @Jon Galloway: «Я не думаю, что CASE
подходит здесь».
Еще одним более профессиональным вариантом будет создание 3 различных хранимых процедур, которые выполняют свою собственную работу (принцип единой ответственности), что-то вроде этого:
If @Type = 1
EXEC InsertCredit @CompanyName, @PhoneNumber, @City, @State
Else If @Type = 2
EXEC InsertDebit @CompanyName, @PhoneNumber, @City, @State
Else If @Type = 3
EXEC OtherInsert @CompanyName, @PhoneNumber, @City, @State