Наилучшим соглашением об именах является то, которое согласовано в вашей базе данных:)
Действительно, решать вам и вашей команде. Пока это ясно и разумно, у вас есть немного свободы. Просто убедитесь, что все, что вы решите, все придерживаются этого. Гораздо важнее, чем само соглашение, является тот факт, что все придерживаются его.
Я стараюсь избегать sp_, usp_ и тому подобного, потому что считаю их излишними. Например, sproc с именем InsertCustomer явно является sproc, и его никоим образом нельзя спутать с таблицей, представлением или любым другим видом объекта. В частности, sp_ следует избегать.
Я предпочитаю CamelCase, но опять же, это вопрос предпочтений. Мне нравится, что имя моего процесса дает хорошее представление о том, что делает этот процесс, например:
InsertSalesOrder
PopulateItemStagingTables
CalculateOrderSummary
PrepareCustomerStatements
и т.д.