Review: xSQL Object
xSQL Object 188.8.131.52
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
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
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.
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.