Кто-нибудь использует функцию SQL Server для создания групп хранимых процедур, дифференцированных по количеству?

11

Вопрос относится к параметру числа в этой документации msdn

Если вы этого не сделаете, вы можете создать несколько хранимых процедур в SQL-Server, дифференцированных по количеству, и отбросить их одним нажатием.

create procedure dbo.stored_proc1 as select 1
go
create procedure dbo.stored_proc1;2 as select 2
go
exec stored_proc1
-- returns 1
go
exec stored_proc1;2
-- returns 2
go
drop stored_proc1
-- drops both 
go

Интересно, кто-то использует эту функцию для чего-то полезного или это просто историческое любопытство?

bernd_k
источник
2
Мы не используем эту функцию, но мне интересно, если это не больше проблем, чем стоит, и просто, как вы говорите, любопытство
Jcolebrand
2
Эта функция устарела и будет удалена в следующем выпуске. Используйте это осторожно.
Мрденни

Ответы:

5

Я использовал эту функцию около 6 лет назад. Вы правы, мы не можем сделать это:

drop stored_proc1;2

и

exec stored_proc1 

такой же как

exec stored_proc1;1

Почему мы это использовали? У нас есть много алгоритмов (стратегий) для расчета данных, поэтому мы можем легко переключаться между версиями без изменения интерфейса вызова.

Гарик
источник
7

Пронумерованные хранимые процедуры устарели.

msdn
Нумерованные процедуры устарели. Использование пронумерованных процедур не рекомендуется. Событие DEPRECATION_ANNOUNCEMENT наступает, когда запрос, использующий это представление каталога, скомпилирован.

Моя команда столкнулась с этим в проекте технического обслуживания. Сначала мы не могли этого понять. Затем мы провели некоторое исследование и выяснили, что оно устарело. Пришлось перестраивать его на обычные хранимые процы.

Пронумерованные хранимые процедуры не отображаются в дереве обозревателя объектов SSMS.

Пронумерованные хранимые процедуры

CoderHawk
источник