- they live in source control
- they are covered by automated tests
- they are applied using some form of automatic database migration system (not by someone manually executing SQL against a database somewhere)
If you don't have the discipline to do these things then they are likely best avoided.
I'd go further and say you should avoid databases and maybe even persistence entirely if you don't have the discipline to do the above. Sprocs will be the least of your problems otherwise.
so that probably excludes 95% of legacy codebases out there from the 90s,00s
For "you" in my comment, please read "one" instead:
> I think stored procedures can be perfectly safe provides one follows these rules:
> ...
> If one doesn't have the discipline to do these things then they are likely best avoided.
This is the classic "carpenter blames his tools for crappy results" argument. Implementation isn't easy.