I'm gonna start out this review with: "Wow, that's a LOT of stuff!" Red Gate's SQL Toolbelt package has a whole slew of tools that'll keep you happy for some time. If it has anything to do with working with databases, you can be sure that Red Gate has something that'll help you do it... if it doesn't just do it for you.
I'm gonna follow that intro off with an admission of guilt: I haven't fully explored everything in the Toolbelt. Seriously, there is a LOT of stuff in there, and I just don't have that kind of time. For that reason, this review will focus primary on SQL Prompt, which is the one thing I use on a daily (hourly!) basis, and has saved me untold amounts of time since I first installed it. Another tool that I use on a daily basis - so much so that it's actually become a part of my standard release process - is SQL Data Compare, which has been a wonderful help in keeping all of my databases synchronized. Along with its companion, SQL Compare, I can be sure that all my databases are exactly the same at any given time, from schema to data, all with a real nice user experience.
A few weeks ago, I tried reviewing SQL Prompt and I never finished. The reason I didn't finish was not because I lost interest or became bored, but simply because there was so much I wanted to write about. It's not really an understatement to say that this tool has changed the way I do database development. In this post, I'm going to give more of a high-level review/overview of all my favorite features without all the screenshots and captions, and (hopefully) follow this post up with a more in-depth post drilling down into the specifics at some point in the near future.
So, in case you hadn't noticed, I think SQL Prompt is awesome. For years I've been doing SQL development as part of my larger coding projects and every time I'd write a piece of SQL I'd think to myself, "ugh - this is so inefficient". The structure of SQL statements are such that it seems like you keep writing the same things over and over again, substituting a few words here and there. Just simple tab-completion of the typical commands (SELECT, UPDATE, DELETE, FROM, WHERE) would've been a godsend, but when I finally found SQL Prompt, I got a lot more than just that. The first thing you'll notice when you first kick up Management Studio after installing is a little, unobtrusive dialog box pops up at the bottom right hand corner of your screen, letting you know that it's parsing through your databases, determining their schema so that it can provide you with the coolest feature: IntelliSense (though they don't call it that... 'cause that would be infringement... right?). What's more, we're not just talking about a single drop-down with available choices, but a full-blown contextual dialog that intuitively shows you what you're most likely looking for... and then some. In the initial view, tables, views, stored procs., etc. are all listed in the same list, each with a little icon indicating what type they are. Then, if you know you're looking for a specific type of object, you can use the intuitive Ctrl-left & right keystrokes to change which tab you're on, allowing you to filter out all of the objects except for a particular type. I know I keep using the word "intuitive", but that's because that's the word that kept coming to my mind the first few times I used it; there's simply no better word to describe it (plus I lost my thesaurus :)! Oh, and if all of that intuitiveness isn't enough for ya, guess what happens when you highlight, say, a table or a view while in this dialog? It shows you that object's schema! Yeah... that's right. This is especially helpful when you're not exactly sure what table/column, etc. you're looking for; instead of doing a bunch of typing and deleting, you can just look at the preview pane and see if the column, key, whatever that you're looking for is there. If not, you just keep on scrolling to the next object. It's almost like database object window shopping!
There isn't a whole lot of bad stuff I can say about SQL Prompt. It shows up when you need it, it does what you'd expect, and it goes away... I would expect that the most likely area complaints would arise in a product like this is in speed, efficiency, and accuracy/knowledge of the auto-completion. To this point, I must admit that there have been a few times when I've expected something to be there (such as a simple/common keyword) that just didn't show up; to be fair, though, there have been many more instances in which I have expected something would not show up as a suggestion (such as a variable I just created a second ago), and it did. I also feel as though I need to mention that I talked to our DBA today and he mentioned that he was not happy with the speed of SQL Prompt, so much so that he ended up completely uninstalling it. (To be fair, he did mention that he's never been happy with any SQL efficiency tool, so maybe his standards are a bit high.)
SQL Data Compare
I'm not sure what I can say about this tool except that I have based a content release process around it. That is to say, I rely on it to make sure that all of my production databases have the correct, pertinent, and up-to-date content at all times. If that's not just the most succinct endorsement of a tool, I don't know what is!
Using SQL Data Compare is a snap - you just create a new "project", identify your database connections, and tell it to go to town. By default, it'll synchronize any table with a primary key (or so it seems), but you can also decide to pick and choose which objects you'd like to synchronize so that you're not wasting your time waiting on a comparison of a table that you don't really care about. Then, once you're ready, you just tell it to compare, review the results and publish! It'll walk you through a wizard, and ask if you're really sure you want to completely overwrite/delete/update the precious data on your production server (of which you have made a backup first, right??). Tell it that yeah, you're really sure, and BAM.... log off and go home, cause your day is done.
Last on my list (for this post, at least) is SQL Compare. Much like its sibling, SQL Data Compare, this tool remembers changes you make to your database so that you don't have to. Though I don't use it as frequently as the other two, this tool practically changed my life after I discovered it. In order to accurately express the impact it's had on me, I have to make (another) confession: for my few bunch of releases containing database updates, I always seemed to miss something when moving to production - it was really a problem! Well, not after I found SQL Compare! Now I can go to release knowing exactly the differences between the two versions... Now, choosing to ignore a difference is a conscious decision. :)
All-in-all, these two tools are incredibly cool, and end up playing an integral role in my daily development and production support life. I really (honestly, quite literally) don't know what I would do without them.
Oh yeah - the rest of the Toolbelt seems really cool, too. :) Hopefully one day I'll be able to work with them all enough to post some more reviews. Until then, just enjoy these two tools, at least, and give the rest a try, too!