就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
9年前关闭。
我见过各种命名存储过程的规则。
有些人使用 usp_ 作为 sproc 名称的前缀,其他人使用应用程序名称的缩写,还有一些人使用所有者名称。你不应该在 SQL Server 中使用 sp_,除非你真的是这个意思。
有些程序名称以动词(Get、Add、Save、Remove)开头。其他人强调实体名称。
在具有数百个 sproc 的数据库中,当您认为某个 sproc 已经存在时,可能很难滚动并找到合适的 sproc。命名约定可以使定位 sproc 更容易。
你使用命名约定吗?请描述它,并解释为什么你更喜欢它而不是其他选择。
回复摘要:
为什么我选择我所做的答案:有这么多好的回应。谢谢大家!如您所见,很难只选择一个。我选择的那个引起了我的共鸣。我遵循了他描述的相同路径 - 尝试使用动词 + 名词,然后无法找到适用于客户的所有 sproc。
能够定位一个现有的 sproc,或者确定一个是否存在,是非常重要的。如果有人无意中使用另一个名称创建了重复的 sproc,则会出现严重的问题。
由于我通常在具有数百个 sproc 的大型应用程序上工作,因此我更喜欢最容易找到的命名方法。对于较小的应用程序,我可能会提倡动词 + 名词,因为它遵循方法名称的一般编码约定。
他还提倡使用应用程序名称作为前缀,而不是使用不太有用的 usp_。正如一些人指出的那样,有时数据库包含多个应用程序的 sproc。因此,使用应用程序名称作为前缀有助于隔离 sproc,并帮助 DBA 和其他人确定 sproc 用于哪个应用程序。
最佳答案
对于我的上一个项目,我使用了 usp_[Action][Object][Process],例如 usp_AddProduct 或 usp_GetProductList、usp_GetProductDetail。然而,现在数据库有 700 个以上的过程,要找到特定对象上的所有过程变得更加困难。例如,我现在必须为产品添加搜索 50 个奇数添加程序,为获取等搜索 50 个奇数。
因此,在我的新应用程序中,我计划按对象对过程名称进行分组,我也放弃了 usp,因为我觉得它有点多余,除了告诉我它是一个过程,我可以从名称中推断出程序本身。
新格式如下
[App]_[Object]_[Action][Process]
App_Tags_AddTag
App_Tags_AddTagRelations
App_Product_Add
App_Product_GetList
App_Product_GetSingle
它有助于将事物分组以便以后更容易查找,尤其是在有大量 sproc 的情况下。
关于多对象使用的地方,我发现大部分实例都有一级和二级对象,所以一级对象用在普通实例中,二级在流程部分引用,例如App_Product_AddAttribute。
关于sql - 存储过程的命名约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/238267/