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

ber*_*d_k 11 sql-server stored-procedures

该问题是指此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
Run Code Online (Sandbox Code Playgroud)

我想知道这个功能是否被任何人用于有用的东西,或者它只是一个历史性的好奇心。

Cod*_*awk 7

不推荐使用编号的存储过程。


不推荐使用msdn编号的过程。不鼓励使用编号程序。编译使用此目录视图的查询时会触发 DEPRECATION_ANNOUNCEMENT 事件。

我的团队在维护项目中遇到了这个问题。我们一开始想不通。然后,我们做了一些研究,发现它已被弃用。我们不得不将它重建为正常的存储过程。

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

编号存储过程


gar*_*rik 5

我大约 6 年前使用过这个功能。你是对的,我们不能这样做:

drop stored_proc1;2
Run Code Online (Sandbox Code Playgroud)

exec stored_proc1 
Run Code Online (Sandbox Code Playgroud)

一样

exec stored_proc1;1
Run Code Online (Sandbox Code Playgroud)

我们为什么使用它?我们有很多算法(策略)来计算数据,所以我们可以在不改变调用接口的情况下轻松地在版本之间切换。