Review: xSQL Object

xSQL Object
xSQL Software
Atlanta, Georgia

I was pretty happy to see this product show up in my latest e-mail from Xtras.Net Developer Network. You see, I've gotten myself into a bit of a fix with one of the applications that I consult on: the deployed version of our SQL Server database is 1.35, and the development version is 1.70, with plenty of changes. And, um, we sort of lost track of what all the changes were, what with the pressure of fixing bugs and adding features.

Enter xSQL Object. After a painless installation, I got a GUI with plenty of options and a blank workspace. It only took a few minutes to add the relevant servers and databases to the workspace (workspaces can be saved for reuse, too). Then I chose my pair of databases and inspected the available options. There are quite a few of these; you can choose whether whitespace counts as a significant change in stored procedures, for example. I was able to turn off some of the things that I knew hadn't changed (no need to check triggers in this particular case) to speed the process up as well.

Then I told xSQL Object to compare the two databases according to the rules that I had set up. Off it went, and it churned away in the background for a few minutes while I did other things. The result: a listing of objects similar to what you'd see by diffing two directories, coded to show which ones were equal on the two databases, which were different, and which were missing from one or the other. Click on any of these, and I could instantly see the SQL scripts for both versions, color-coded with Microsoft's default colors and with comments inserted to highlight any changes.

Then came the really nice part. A few more mouse clicks, and xSQL Object went back to work, this time generating change scripts. It generates two scripts, one to turn database A into database B, and one to go the other direction. Both scripts use transactions and error checking and keep a log of errors. Voila! I now had the bulk of what I needed to bring our production server up to the development server's level (I still needed to do a bit of work to handle data that had shifted from one table to another, but there's no way for a tool to know that).

There are some other miscellaneous goodies here as well. You can easily show dependency information for any object, or create scripts for a single object or for an object and its dependencies. You can also investigate database properties or force a recompilation for selected objects. Overall, I found this to be an easy-to-use utility that perfectly targeted my needs. If you're maintaining multiple versions of a database (and you've got the occasional problem with knowing what the differences are) you ought to check it out too. There's a trial download at the company's Web site.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.

Upcoming Events