I understand the basic principles of SQL, can listen to DBAdmins without getting totally lost, and have used SQL Server to host all sorts of data from pictures to stats on which Free Cell games I've played. By no means do I consider myself a SQL programmer, but I can dabble when the job requires it.
 
Well, right now the job requires it. Some relatively simple stuff, back end for a web site...user account tables, comment tracking, content storage...nothing exotic. While the project is a fast track, I do have a bit of extra time, and I've decided to do at least some of the things the "right" way...put the database logic in the database.
 
I've fired up SQL Enterprise Manager and the Query Analyzer (I know, I should be doing this stuff within Visual Studio, but old habits die hard) and started knocking out a few functions and stored procedures. Things go well until I attempt to add a couple of lines to do something REALLY SIMPLE. An hour later I've solved the problem, but this should have taken me about 15 seconds. Admittedly, it was due to my ignorance of some of the nuances of SQL, a simple mistake that resulted in perfectly legitimate SQL code that in no way did anything remotely connected to the problem I was attempting to solve.
 
After some discussion with one of my buddies, Richard, I've come to the conclusion that I've gotten lazy. Not necessarily lazy in a bad way, more like lazy in the manner presented in the The man who was too lazy to fail1. With the introduction of C# by those wonderful guys over in the Developer Division, I've stopped writing code in C and C++ for the most part. C# provides a wealth of the basic functionality that I would normally have to code. I don't spend my time building complex data structures, linked lists, queues, and the like anymore. With C# I can focus on the task and (for the most part anyway) use the framework to take care of the grunt work.
 
In building the framework, the dev div has also made coding up a lot of simple tasks easier. I don't have to think much about how I can accomplish a bit of bit twiddling, it comes much more naturally (for me anyway).
 
Switch back to my SQL development, I no longer have all of nice features of C#. I have to use vintage constructs like "BEGIN...END", think about whether I need to use "SET or SELECT", and have you looked at a SQL switch (CASE) statement lately? I don't doubt that someone at Microsoft (and elsewhere I'm sure) are currently hunched over keyboards writing the next great SQL language. While there are a ton of DB folks out there that shudder at the thought of change, a few years back there were those that scoffed at the need for C#. No rush, anytime before next Tuesday will work for me.
 
 

1The man who was too lazy to fail is a short story about a man who wants to get away from the hard work of the farm and succeeds wildly due in no small part to his desire to avoid "honest work." It is presented in Robert A. Heinlein's Time Enough For Love.