Gal*_*kin 25 sql t-sql sql-server stored-procedures
我曾与几个大型数据库合作,存储过程的名称非常不同:
SP_PrefixXXX
PrefixYyyXxx
Prefix: Rep, Act
Run Code Online (Sandbox Code Playgroud)
什么是命名的最佳实践?我该如何以正确的方式组织它们?
Guf*_*ffa 52
该sp_前缀代表系统过程,它应该不会被用来作为前缀的正常程序.如果这样做,它将首先在master每次查找过程时额外访问数据库,如果它与其中一个过程具有相同的名称,则将执行该过程而不是您的过程.
除此之外,您可以自由地编写您喜欢的任何命名约定.我们公司使用的是subsystem_object_action,例如main_Customer_Get.这使得属于一起的过程在列表中彼此接近.
最好的命名约定是整个数据库中一致的:)
真的,这取决于你和你的团队.只要它清晰明了,你就有一点余地.只要确保无论你决定什么,每个人都坚持它.比大会本身更重要的是每个人都坚持下去.
我倾向于避免使用sp_,usp_等,因为我发现它们是多余的.例如,名为InsertCustomer的sproc显然是一个sproc,并且绝不会混淆表,视图或任何其他类型的对象.特别是应该避免使用sp_.
我更喜欢CamelCase,但同样,这是一个偏好问题.我喜欢我的proc名称,以便很好地指示proc的作用 - 例如:
InsertSalesOrder PopulateItemStagingTables CalculateOrderSummary PrepareCustomerStatements
等等
我喜欢为它们添加前缀,以便将SP处理特定对象的组合在一起.所以,而不是像:
InsertUser
UpdateUser
DeleteUser
GetUsers
我是这样做的:
AppName_User_GetUser
AppName_User_InsertUser
AppName_User_UpdateUser
AppName_User_DeleteUser
我发现这对我来说更容易在我的SQL管理应用程序和代码中进行管理.
像其他人说的那样,不要用sp_作为前缀
不是"sp_",也不是"usp_".我们知道它们是存储过程,命名方案不需要告诉我们.
我通常只是为他们所做的事情命名,可能在模式上将它们分区.例外情况是我将对存储过程使用"ssis_"前缀,这些存储过程不直接用作"正常"数据库操作的一部分,但是SSIS包用它来引用数据库.我可以使用"fn_"来表示一个函数,以区别于存储过程.
小智 6
我不知道在这种情况下是否确实存在特定的"最佳实践".对于我现在的公司,标准是usp [ProcedureName](没有下划线).我个人不会喜欢任何前缀,但是如果你是一个新的公司或项目并且他们有预先存在的标准,除非他们使用sp_哪里有技术原因不使用它,它可能不是值得辩论的问题,因为我当然不认为在这种情况下是一个令人震惊的标准.
一般来说,重新命名惯例,如果你确实有辩论而其他团队成员不同意你,而且共识标准不同,那么最好的政策就是尽快让它去接受共识; 一致性通常比实际标准本身更重要,因为它与其他团队成员相处得很好,而不是因为"困难"而建立声誉.
| 归档时间: |
|
| 查看次数: |
24635 次 |
| 最近记录: |