I've been neither. I used to do a lot of support scripts/troubleshooting in SQL, and I am now 3 weeks into a C++ developer position, so I can offer my insight from the perspective of someone with little experience.
SQL - to me, is more intantly gratifying, you write the script, you get the results, some are pretty crazy and when it works, it feels really good.
Programming - is more satisfying in the end, but it take a lot more blood sweat and tears to get there.
Another difference between the two is, to me, even though they are all just 1's and 0's on a computer, programming is the only one that lets you get something more "tangible" so to speak. A program is a much bigger piece of work and can be used by many different people. SQL code is usually just a part of a program, and the SQL developer will never get as much recognition as the Java programmer (IMHO), it just stays in the background and silently gives you data.
But, I hope other people reply, because as I said, I'm not very experienced at all and I too would like to hear from more experienced people.
Hope this at least sheds some light.