我已经看到了命名存储过程的各种规则.
有些人在存储过程名称前加上usp_,有些人用应用程序名称的缩写,还有一些人用所有者名称.除非你是认真的,否则不要在SQL Server中使用sp_uu.
有些程序名以动词开头(Get、Add、Save、Remove).其他人则强调实体名称.
在一个有数百个存储过程的数据库中,当您认为已经存在存储过程时,很难四处滚动并找到合适的存储过程.命名约定可以使定位存储过程更容易.
你使用命名约定吗?请描述它,并解释为什么你喜欢它胜过其他 Select .
Summary of replies:
- 每个人似乎都主张命名的一致性,对每个人来说,使用相同的命名约定可能比使用哪个特定的命名约定更重要.
- 前缀:虽然很多人使用usp_u或类似的东西(但很少使用sp_u),但许多人使用数据库或应用程序名称.一位聪明的DBA使用gen、rpt和tsk来区分一般CRUD存储过程与用于报告或任务的存储过程.
- 动词+名词似乎比名词+动词更受欢迎.有些人使用SQL关键字(Select、Insert、Update、Delete)作为动词,而其他人则使用非SQL动词(或缩写),如Get和Add.有些人区分单数和复数名词,以表示是否检索到一条或多条记录.
- 在适当的情况下,建议在末尾添加一个短语.GetCustomerById,GetCustomerBySaleDate.
- 有些人在名字段之间使用下划线,有些人则避免使用下划线.app_uuGet_uCustomer vs.appGetCustomer——我想这是一个可读性的问题.
- 存储过程的大型集合可以分离为Oracle软件包或Management Studio(SQL Server)解决方案和项目,或SQL Server模式.
- 应避免使用难以理解的缩写.
有那么多好的回复.谢谢大家!正如你所见,很难只 Select 一个.我 Select 的那个与我产生共鸣.我遵循了他描述的相同路径——try 使用动词+名词,但无法找到适用于客户的所有存储过程.
能够定位现有存储过程,或者确定是否存在存储过程,这一点非常重要.如果有人无意中用另一个名字创建了重复的存储过程,可能会出现严重的问题.
由于我通常使用数百个存储过程来处理非常大的应用程序,所以我更喜欢最容易找到的命名方法.对于一个较小的应用程序,我可能会提倡动词+名词,因为它遵循方法名的一般编码约定.
他还主张用app name作为前缀,而不是用不太有用的usp_2;.正如一些人指出的那样,有时数据库包含多个应用程序的存储过程.因此,使用app name作为前缀有助于隔离存储过程,并帮助DBA和其他人确定存储过程用于哪个apply.