是否有人使用SQL Server功能创建按数字区分的存储过程组?


11

问题是指此msdn文档中的number参数

如果不这样做,则可以在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
此功能已被弃用,并将在以后的版本中删除。小心使用。
mrdenny

Answers:


5

我大约在6年前使用了此功能。您是对的,我们不能这样做:

drop stored_proc1;2

exec stored_proc1 

与...相同

exec stored_proc1;1

我们为什么使用它?我们有很多算法(策略)来计算数据,因此我们可以轻松地在版本之间进行切换,而无需更改调用接口。


7

不建议使用编号的存储过程。

msdn
不建议使用编号过程。不鼓励使用编号的程序。编译使用此目录视图的查询时,将触发DEPRECATION_ANNOUNCEMENT事件。

我的团队在维护项目中遇到了这个问题。我们一开始无法弄清楚。然后,我们进行了一些研究,发现它已被弃用。我们必须将其重建为正常的存储过程。

编号的存储过程将不会显示在SSMS的“对象资源管理器”树中。

编号存储过程

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.