He usually sucks for various reasons. If you work with object-oriented, then stored procedures are not eaxactls a good place for logic, because your objects no longer exist there. An object can be in several tables.
Secondly. SQL is a damn bad langauge for coding complex logic. There is simply no tdone for this - one of the reasons SQL Server allows you to write SP in .NET. Try to compute the hash in SQL, and you will understand what I mean - all kinds of string manupulations - this is another area. Dirty as hell.
SPs are generally quite often made with idiotic arguments. Idiotic, as the arguments that people urge to protect, simply do not correspond to reality. Frans Bourma has a list of the most commonly used errors and a good explanation of why the arguments are mostly dumb strokes at http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx - and yes, this is it level of idiocy (for example, people don’t even read the documentation or think about what they actually say in all the consequences).
I personally have limited systems with stored procedures, and I have: Limited complexity, but high performance. In principle, there is no inheritance, because the object model is simple, the transaction logic in SP is not too complicated, and I need / need an extreme low lock speed, so certain operations are moved to stored procedures. In addition, this particular application also has a very unusual object model (aare objects are dynamically streams from different sources, never updated, always replaced, and all changes HAVE to go through services and not be performed on the object - sometimes due to a change, I asked for another computer in another country in the organization’s organization.
A good example is an accounting system with high performance (as it tracks the transactions of fully automated trading systems). The logic in each SP is not very complicated, but I want to have as few SQL as possible going back and forth.
Now, the bad side of stored procedures is also a lot of useful. There is no proper testing framework, no mocking frameowrk, itnegration source control is a little awkward (but doable with the right set of tools). Integrated Debugging? Well, my huge thanks to Microsoft and Visual Studio - it really works (the breakpoint in the stored procedure is very nice).
I have yet to see one approach using a variety of stored procedures that were not protected with completely conflicting arguments - at the level of actually demonstrating the “employee must be fired” thinking level. Maybe they are there, but I have not seen them.