• I appreciate this article and gave it 5 stars. This article went further (as expected) in explaining how test driven development might work at the database level. I like how you write clearly and with very good examples. I'm still not sold on the usefulness of this technique -- at least in my environment -- but I'm glad to learn how test driven development works for databases.

    That said, I found it interesting that I already do a small part of what you are demonstrating. I never check for the existence of a database or table or schema. However, all my scripts for code pieces (stored procs, functions, views, etc.) start with checking to see if the proc/etc. exists and if so, it drops it. Then I create the proc/etc. Then I check for existence. Then I apply permissions. All of this is part of my templates for each code object type so it is easy to incorporate and never forget. I may not do it exactly the way you do it, and I don't go beyond testing for existence (formally with unit tests), but I was happily interested that there is some overlap.

    I also find your description of developing with solutions/projects helpful. I don't do it that way and am interested to see how it works. I appreciate that you take the time to explain the environment and do not assume we already know it.

    Thanks for writing this up.