Мне нужно написать пример хранимой процедуры с двумя параметрами, подобными этим:
sp_list_customers @locationid int, @category varchar
Пользователи могут передать @locationid = 0
, чтобы составить список клиентов во ВСЕХ местах или с определенным ID местоположения. Также они могут передавать пустую или пустую строку в p, чтобы замедлить ВСЕ категории.
Вот мой код SQL:
create procedure ...
as
select *
from customers
where locationid = (case
when isnull(@locationid, 0) = 0
then locationid
else @locationid
end)
and category = (case
when isnull(@category, '') = ''
then category
else @category
end)
Однако этот тип кодов работает слишком медленно с большим количеством параметров
Я искал способы решения проблемы, а затем обнаружил, что динамический T-SQL является приемлемым решением. Но перенести все мои хранимые процедуры - дело кошмарное и подверженное ошибкам.
Мне нужно написать другую пользовательскую функцию, чтобы помочь мне. Каков наилучший пользовательский код функции для этого?
Спасибо