I have used pretty much all of the different systems over the years. I finally developed this one, which I continue to use today:
Prefix :
- gen - General: CRUD, mostly
- rpt - Report: self-explanatory
- tsk - Task: usually something with procedural logic, run via scheduled jobs
Action Specifier:
Ins - INSERT
Sel - SELECT
Upd - UPDATE
Del - DELETE
(In cases where the procedure does many things, the overall goal is used to choose the action specifier. For instance, a customer INSERT may require a good deal of prep work, but the overall goal is INSERT, so "Ins" is chosen.
Object:
For gen (CRUD), this is the table or view name being affected. For rpt (Report), this is the short description of the report. For tsk (Task) this is the short description of the task.
Optional Clarifiers:
These are optional bits of information used to enhance the understanding of the procedure. Examples include "By", "For", etc.
Format:
[Prefix][Action Specifier][Entity][Optional Clarifiers]
Examples of procedure names:
genInsOrderHeader
genSelCustomerByCustomerID
genSelCustomersBySaleDate
genUpdCommentText
genDelOrderDetailLine
rptSelCustomersByState
rptSelPaymentsByYear
tskQueueAccountsForCollection