我看过各种不同的存储过程命名规则。
有些人在存储过程名称前加上 usp_,有些人用应用程序名称的缩写,还有些人用所有者名称。除非你确实需要,否则不应使用 SQL Server 中的 sp_.
有些人用动词(如Get、Add、Save、Remove)开头命名过程名称。其他人强调实体名称。
在有着数百个存储过程的数据库中,当你认为已经存在一个合适的存储过程时,滚动寻找一个可行的存储过程可能非常困难。命名规范可以使查找存储过程更容易。
你是否使用命名规范?请描述一下,解释为什么你喜欢这种命名规范胜过其他选择。
回复摘要:
- Everybody seems to advocate consistency of naming, that it might be more important for everyone to use the same naming convention than which particular one is used.
- Prefixes: While a lot of folks use usp_ or something similar (but rarely sp_), many others use database or app name. One clever DBA uses gen, rpt and tsk to distinguish general CRUD sprocs from those used for reporting or tasks.
- Verb + Noun seems to be slightly more popular than Noun + Verb. Some people use the SQL keywords (Select, Insert, Update, Delete) for the verbs, while others use non-SQL verbs (or abbreviations for them) like Get and Add. Some distinguish between singluar and plural nouns to indicate whether one or many records are being retrieved.
- An additional phrase is suggested at the end, where appropriate. GetCustomerById, GetCustomerBySaleDate.
- Some people use underscores between the name segments, and some avoid underscores. app_ Get_Customer vs. appGetCustomer -- I guess it s a matter of readability.
- Large collections of sprocs can be segregated into Oracle packages or Management Studio (SQL Server) solutions and projects, or SQL Server schemas.
- Inscrutable abbreviations should be avoided.
为什么我选择了我所选择的答案:有太多好的回答了,谢谢大家!正如你所看到的,很难只选择一个。我选择的那个与我共鸣。我走过了他所描述的同样的道路--尝试使用动词+Noun,然后找不到适用于客户的所有sprocs。
能够定位现有的存储过程,或确定其是否存在非常重要。如果有人意外地创建了另一个名称的重复存储过程,可能会出现严重问题。
由于我通常会处理数百个存储过程的大型应用程序,因此我更喜欢最易于查找的命名方法。对于较小的应用程序,我可能会提倡使用“动词 + 名词”的方式,因为这符合方法名称的一般编码约定。
他也主张在前缀中加上应用程序名称,而不是不太有用的 usp_。正如一些人指出的那样,有时数据库包含多个应用程序的 sprocs。因此,使用应用程序名称作为前缀有助于隔离 sprocs,并帮助 DBA 和其他人确定 sproc 用于哪个应用程序。