Чи хтось використовує функцію SQL Server для створення груп зберігаються процедур, диференційованих за кількістю?


11

Питання стосується параметра параметра в цій документації на MSDN

Якщо ви цього не зробите, ви можете створити декілька збережених процедур у SQL-сервері, диференційованих за кількістю, і опустити їх одним крапкою.

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
Ця функція застаріла і буде видалена в майбутньому випуску. Використовуйте його обережно.
mrdenny

Відповіді:


5

Я використовував цю функцію близько 6 років тому. Ви маєте рацію, ми не можемо цього зробити:

drop stored_proc1;2

і

exec stored_proc1 

такий же як і

exec stored_proc1;1

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


7

Пронумеровані збережені процедури застаріли.

msdn
Пронумеровані процедури застаріли. Використання нумерованих процедур не рекомендується. Подія DEPRECATION_ANNOUNCEMENT запускається при складанні запиту, що використовує цей вид каталогу.

Моя команда зіткнулася з цим під час проекту технічного обслуговування. Спочатку ми не могли це зрозуміти. Потім ми провели кілька досліджень і з’ясували, що це застаріло. Нам довелося відновити його до звичайних збережених програм.

Пронумеровані збережені процедури не відображатимуться в дереві Object Explorer SSMS.

Пронумеровані збережені процедури

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.