Wow, long read. I support the moderate voices here. (And the blog author’s quixotic spirit at the time). I love SQL and MS SQL Server. And yet when permitted… I’ve had great success with dynamically compiled sql. I put it in a DAL so it’s easy to find. I generate the sql for most of my procs/udf with C# so they’re easy to maintain. (Not so easy to pitch the homegrown solution now that we have Linq). I have no philosophical issues that require my DAL to be dumb about persistence, and since my clients aren’t made of money, I don’t think I could advise my client that it’s a must…
I always use a proc when a lot of data needs to flow across several steps - situations where you might use a temporary table-type variable for large intermediate results and in the end return a relatively small amount of data to the middle tier.
Way back when, mandatory crud procs was the common wisdom. For all the reasons mentioned by the free thinkers, it’s not so dogmatic anymore but it’s still hard to argue against a zealot with a list of undated material to back up their rhetoric, superstition and ego.
I have seen abuse of inline SQL. Especially with recursive calls… Even recently, a large corporation had amazing engineering in many areas but their DAL consisted of a couple of methods that took a concatenated string of sql and returned an untyped dataset, (with no compile). They didn’t care. That was most likely politics, but reading through the comments, I guess smartly normalized tables went out of fashion for awhile?
At any rate, it’s nice to see MS remove the web service from SQL Server. It’s productive to have a full featured db on tap. Oslo is making no apologies.