編號儲存過程:介紹和棄用?
SQL Server 和 Sybase ASE 都支持通過附加數字來對儲存過程進行分組的高度可疑的特性:
CREATE PROCEDURE Foo;1 AS ... CREATE PROCEDURE Foo;2 AS ...
唯一切實的好處是
DROP PROCEDURE Foo
將所有這些程序放在一起——僅此而已;要打電話給他們,您仍然需要明確附加號碼。允許分號作為過程名稱的一部分並且具有不明顯的DROP
語義的缺點應該是顯而易見的,並且確實許多工具不(正確地)支持這種格式,並且諸如包含的數據庫之類的東西完全禁止它們。此功能是在哪個版本的 SQL Server 和/或 Sybase ASE 中引入的,從哪個版本開始棄用?我會查閱文件,但似乎沒有可以追溯到足夠遠的文件。我發現了以下內容:
- SQL Server 聯機叢書 2005已經提到它們已棄用。
- ASE 12.5 的 SyBooks Online提到它在那裡也可用,但有一個標誌來禁止它們。
這使我認為該功能可能確實存在於非常早期的版本中,可能在 Sybase 和 Microsoft 分裂之前,但仍然沒有告訴我最早的引入和棄用是什麼。殺死這只恐龍的小行星還在軌道上,但恐龍的年齡有多大?
查看 SQL Server 2000 T-SQL 幫助,沒有提及棄用,因此似乎編號儲存過程在 SQL Server 2005 版本中已棄用。
我不記得編號 procs 從未出現在 Windows 上的 Microsoft SQL Server 產品中,所以我很確定該功能源於它的 Sybase 根源,並且在 4.21a Windows 版本中。因為我躲過了那顆子彈,所以我無法與 OS/2 版本交談 :-)
編號 proc 至少從 4.2 版開始就在 ASE(90 年代早期:Sybase SQL Server)中。
是的,編號 procs 仍然在今天的 ASE 中(例如,ASE 16.x)。
我從來沒有找到它們的用途,也記不起每次遇到它們的用途(這些年來我在幾十家公司工作過)。
我不知道為什麼這些恐龍仍然存在,除非可能是為了向後兼容(仍然)使用它們的任何人。
至於殺死這些恐龍……聳肩……我能想到很多地方(在 ASE 中)應該更好地花費精力。與此同時,雖然我知道存在編號的 procs,但我只是忽略它們並繼續我的快樂方式……