Не думаю, что я в целом вернет всю строку, но это может быть полезной техникой.
Если вы генерируете код, вы можете сгенерировать два процесса (один, который вызывает другой, возможно) или параметризовать один процесс, чтобы определить, возвращать ли его по проводам или нет. Я сомневаюсь, что издержки БД значительны (однострочный, должен иметь поиск по PK), но данные по проводам от БД к клиенту могут быть значительными, когда все сложено, и если их просто отбрасывают в 99% случаев, я увидеть мало значения. Разумеется, наличие SP, который возвращает разные вещи с разными параметрами, является потенциальной проблемой для клиентов.
Я вижу, где было бы полезно, если бы у вас была логика в триггерах или вычисляемых столбцах, которые управляются базой данных, и в этом случае SELECT действительно единственный способ вернуть эти данные без дублирования логики в вашем клиенте или сам СП. Разумеется, место для логики должно быть хорошо продумано.
Помещение ЛЮБОЙ логики в базу данных - это, как правило, тщательно продуманный компромисс, который начинается с минимально инвазивных и максимально полезных вещей, таких как ограничения, уникальные ограничения, ссылочная целостность и т. Д., И переходит к более инвазивным и минимально полезным инструментам, таким как триггеры. .
Как правило, мне нравится логика в базе данных, когда у вас есть мультимодальный доступ к самой базе данных, и вы не можете, например, проталкивать людей через ваши клиентские сборки. В этом случае я все же попытался бы заставить людей использовать представления или SP, которые сводят к минимуму вероятность ошибок, дублирования, проблем логической синхронизации или неправильной интерпретации данных, тем самым обеспечивая максимально чистый, согласованный и связный периметр.