我已经看到了各种命名存储过程的规则。
某些人在存储过程名称前加上usp_前缀,另一些人在应用程序名称的缩写前加上前缀,而另一些人则在所有者名称前加上前缀。除非您确实如此,否则不应在SQL Server中使用sp_。
有些人以动词开头proc名称(获取,添加,保存,删除)。其他人则强调实体名称。
在具有数百个存储过程的数据库上,当您认为已经存在一个存储过程时,很难滚动查找合适的存储过程。命名约定可以使存储程序的查找更加容易。
您是否使用命名约定?请描述一下,并说明为什么您偏爱其他选择。
答复摘要:
- 似乎每个人都提倡命名的一致性,对于每个人来说,使用相同的命名约定可能比使用特定的命名约定更为重要。
- 前缀:虽然很多人使用usp_或类似名称(但很少使用sp_),但其他许多人则使用数据库或应用程序名称。一个聪明的DBA使用gen,rpt和tsk来区分一般的CRUD程序和用于报告或任务的程序。
- 动词+名词似乎比名词+动词更受欢迎。有些人为动词使用SQL关键字(“选择”,“插入”,“更新”,“删除”),而其他人则使用诸如Get和Add之类的非SQL动词(或它们的缩写)。有些人在单数名词和复数名词之间进行区分,以指示是否正在检索一个或多个记录。
- 最后在适当的地方建议添加一个短语。GetCustomerById,GetCustomerBySaleDate。
- 有些人在名称段之间使用下划线,而有些人则避免使用下划线。app_ Get_Customer与appGetCustomer-我想这是可读性的问题。
- 可以将大量的sproc隔离到Oracle软件包或Management Studio(SQL Server)解决方案和项目或SQL Server架构中。
- 应避免使用难以理解的缩写。
为什么选择我做的答案:有很多好的答案。谢谢你们!如您所见,很难只选择一个。我选择的那个引起了我的共鸣。我遵循了他描述的相同路径-尝试使用动词+名词,然后无法找到所有适用于客户的存储过程。
能够找到一个现有的存储过程,或者确定一个存储过程是否存在,这一点非常重要。如果有人无意间创建了另一个名字的重复存储过程,可能会导致严重的问题。
由于我通常在具有数百个存储库的大型应用程序上工作,因此我偏爱最容易找到的命名方法。对于较小的应用程序,我可能会提倡动词+名词,因为它遵循方法名称的通用编码约定。
他还主张使用应用程序名称作为前缀,而不是使用不太有用的usp_。正如一些人指出的那样,有时数据库包含多个应用程序的存储库。因此,使用应用程序名称作为前缀有助于隔离存储过程,并有助于DBA和其他人确定该存储过程用于哪个应用程序。