I spent the first 4-5 years of my IT career working on Oracle as a PL/SQL developer (8i), the rest (6 years or so) I've worked almost exclusively on MS SQL Server but have still done a bit of Oracle, Informix, Access, MySQL.
Not having had a huge programming background meant that I have avoided many of the pitfalls that you speak of, i.e. VB developers approaching database development from a procedural point of view rather than a set based view.
When blaming the inclusion of a procedural language in a database product there seems to be a blanket dismal of any use of T-SQL or PL/SQL.
Both have their uses, their limitations and the misuses.
There also seems to be the arrogant assumption that any scripting done on the database is wrong and it should be "elsewhere".
It doesn't matter where the scripting is done. Bad database development is a system wide issue. Whether it's a crap set of queries being invoked by an application or an SQL procedure using row-by-row cursors rather than a well written DML statement.
Going back to my roots as an Oracle PL/SQL developer.
The first system I developed on, involved a database that had 2 main tables and 4 or 5 very small lookup tables. The contents of the database were a complete mess, as was the development procedure. Document everything first, then develop. Problem is, signed off development documents could contain fundamental flaws which even a company purporting to be an Oracle specialist would miss.
My second job worked on a more relational database model. Unfortunately most of the developers were crap. Processes which should take a couple of seconds to run took minutes and in some cases hours. Cursors all over the place and so much stuff hardcoded that at least 2 weekends a month were spent trying to fox reports so that management could actually get some sales figures out. It was so bad that I almost left after 3 months. Instead I stayed and decided to force a rethink through and push the standard up. Thankfully I managed to get through to the rest of the team and performance improved.
When I switched to SQL Server, I was initially appalled. Like you I hated the point and click attitude. On the surface it appeared as if it was a real second rate system compared to Oracle.
I persevered again, and after a couple of years (yes, it wasn't overnight) and being forced by my manager at the time into a DBA role, I came to love the system. Reading up on the literature, both MS and from other sources, I could see that the form based management style was just another way of doing things. It does not absolve the DBA of any responsibilities in terms of checking system performance, monitoring, compatibilities etc.
SQL Server might try and smooth those over for you if you happen to be implementing a smaller stand alone system. But as soon as you move to multiple servers for multiple companies in multiple countries you have to know what your doing.
Having left the full time job to move into contracting I decided to specialise in SQL Server T-SQL development. DBA work is ok, but (on any system) uses a lot less imagination and thought then development (I'm not saying that being a DBA isn't easy). Its involves a completely different mindset to development and as you say, the two should not be mixed lightly.
Now that I'm a contract SQL Server developer I still get asked from time to time to have a look at Oracle PL/SQL scripts which aren't working/performing/behaving as expected or simply need to be migrated to a SQL Server platform. I see exactly the same mistakes being made in Oracle PL/SQL that I do in SQL Server T-SQL. Cursors instead of well written DML, bad use of sub queries, Dynamic SQL being used out of ignorance or laziness and nobody ever seems to know efficient ways of querying linked databases.
Now to get to the issue of MS propaganda. I'm a keen reader of technical documents. I hate not knowing something and I also believe that the best way of getting the optimal performance out of any system is to read up on the official literature, white papers, documentation etc... to make sure that "the wheel" isn't being reinvented. At no point have I ever got the impression from Microsoft that SQL Server was a "self healing" system. They supply tools-a-plenty to help you monitor its health, get alerts when something isn't right and a lot of advice on best practices. But for anything other than the smallest implementation a knowledgeable professional is required to get the best out of the system.
As well as the official literature, there are also the SQL Server MVP's. Go in to any online SQL Server community and these people stand out. They know a lot about the system, the best practices and how to keep it running well.
http://www.odinjobs.com/blogs/career...perts_part_iii
Going back on to google, searching on "sql server best practices" (without the quotes) brings up as first result this:
http://technet.microsoft.com/en-us/s.../bb671430.aspx
A wealth of best practice papers direct from microsoft all of which impart proper database theory knowledge specifially applied to SQL Server, although in many cases also applicable to other database systems. It is not simply a lot of what to click and what not click guides.
So where is this "self healing" myth coming from? It comes from the bottom up. From people with very little experience of SQL Server and see it, as I initially did, as a point and click environment which doesn't need any administration.
Unfortunately these masses can appear to shout the loudest. Especially when you have the feeling of still finding your feet.
As a professional, it is imperative that you do your best to champion best practices. Educate those who aren't doing it right and don't sit back and let them develop "crap" on a "crap" system.
I did have a look for any propagande which may exist from Micrsoft about "self healing" databases.
http://www.microsoft.com/presspass/f...18sql2000.mspx
I'll leave it up to you to read it. But make sure you read this one as well:
http://www.oracle.com/technology/ora...310gcover.html