Кто-нибудь использует функцию 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

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


2
Мы не используем эту функцию, но мне интересно, если это не больше проблем, чем стоит, и просто, как вы говорите, любопытство
Jcolebrand

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

Ответы:


5

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

drop stored_proc1;2

и

exec stored_proc1 

такой же как

exec stored_proc1;1

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


7

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.