Вот почему вам нужна хорошая документация и хороший администратор базы данных для написания такого программного обеспечения.
ИМХО хранимые процедуры неплохие, их можно использовать для многих полезных вещей, таких как триггеры, или для выполнения некоторых сложных запросов, когда вместо этого вам придется писать много запросов на стороне клиента. Но, конечно, нет ничего хорошего. Некоторые недостатки, которые я обнаружил: хранимые процедуры могут вызывать гораздо больше работы на стороне сервера (что иногда можно перенести на сторону клиента), а иногда их трудно поддерживать.
Но, с другой стороны, они очень полезны, когда когда-нибудь вам придется предоставить доступ к базе данных некоторым программистам, пишущим программное обеспечение, например, например. Java, который не сможет использовать все те классы БД, которые вы написали в C #. В этом случае полезно иметь некоторую логику в базе данных, чтобы вы могли использовать ее независимо от используемого клиента или языка.