In a previous review, I looked at SwisSQL
SQLOne Console from SwisSQL, that converts SQL
statements from one SQL dialect to another. That's a
generic SQL Converter and supports conversion to and
from Microsoft SQL Server, Sybase, Oracle, IBM DB2,
Informix, MySQL, PostgreSQL and ANSI SQL.
Now it's time to review yet another migration related
product from SwisSQL. It is called "
SwisSQL Sybase to SQL Server Migration Tool 2.1".
As the name suggests, this migration product automates
the conversion of Sybase ASE (Adaptive Server Enterprise)
T-SQL stored procedures, inbuilt functions, triggers,
tables, views, and other database objects to Microsoft
SQL Server T-SQL.
You might question the use of a migration tool that
converts Sybase T-SQL to Microsoft SQL Server T-SQL,
as both these dialects are very similar. In fact, Microsoft
SQL Server has evolved from Sybase. Even though both
Sybase and Microsoft went different ways with their
RDBMS platforms, their T-SQL implementations still share
commonalities. At the same time, both Microsoft and
Sybase have enhanced and improved their T-SQL implementations
with their own extensions. This is where a product like
SwisSQL Sybase to SQL Server Migration tool comes into
play. This tool automates the typically painful and
manual process of converting your database objects from
Sybase T-SQL to Microsoft SQL Server T-SQL. Using a
tool for this purpose makes sure your SQL code conversion
is consistent through out, and saves you time and money,
by reducing the human error factor.
Make sure you download the installation which includes
the Java Runtime Environment (JRE). Though the installation
with JRE is bulky (24 MB, compared to 8 MB of installation
file without JRE), it is worth downloading, as it'll
save you time configuring the required JRE settings
manually.
Installation is pretty straight forward, apart from
the following issues. If you are running the setup on
a Windows XP SP2 machine, XP will warn you saying the
publisher for this software is 'Unknown'. This product
is based on Java, and requires Java Runtime Environment.
But Windows XP SP2 firewalls blocks Java from running.
For this product to work, you have to make sure you
are not blocking Java.
Here's how the product looks like, in action:
This tools allows you to migrate your database objects
using two different methods. First method is to provide
the tool with Sybase T-SQL script files, that is, offline
migration. The other option is to fetch the Sybase database
objects directly from Sybase server instance (online
migration). This tool can connect to a Sybase server
using either JDBC or ODBC.
As you can see from the above screen shot, the application
window consists of two main areas:
The left hand side pane allows you to provide the input
Sybase T-SQL scripts, and the right hand side pane provides
access to the converted Microsoft T-SQL scripts.
This tool is pretty straight forward to use. Using the
"Add" button on the left hand side pane, you can load
your input Sybase T-SQL scripts into the application.
You can select one or more script files from the 'File
Open' dialog box. Similarly, you can use the "Wizard"
button on the right hand side of the window, to connect
to a Sybase Server, and fetch database objects for conversion.
Using the "Remove" button on the left hand side pane,
you can delete the scripts that are already selected.
Using the "View TSQL" button, you can view the scripts
inside the files that are currently loaded.
Once, all the required scripts are loaded into the application,
you can use the "Migrate" button from the top row of
buttons, to convert all the loaded files from Sybase
T-SQL to Microsoft T-SQL. Alternatively, you can select
one or more files, and convert only those files, using
the "Migrate Selected Files" button.
During the conversion process, a "Migration Progress
Viewer" appears. This windows shows you the current
status of the conversion. You can access detailed information
about the performed conversion, by clicking on the "View
Report" button. Here's a screen shot of "Migration Progress
Viewer":
There's a "Parse TSQL files" button in
the top row of buttons, that I found quite useful. This
feature is useful for checking the input files for syntax
errors and other potential problems, before the actual
conversion. This functionality can also be invoked from
the Action > Examine menu item, or by clicking Ctrl
+ E.
Press "F1" to access the help files for this product.
The "User Guide" in the help file provides, step by step
instructions for migrating your Sybase database objects
to SQL Server.
Here's an example, of a Sybase T-SQL script, and an equivalent
Microsoft SQL Server T-SQL script produced by this tool.
Notice how the RAISERROR is converted:
Sybase T-SQL:
CREATE PROCEDURE TestProcedure
(
@i int
)
AS
BEGIN
IF @i < 0
BEGIN
RAISERROR 20002, '@i CANNOT BE LESS THAN 0.'
END
ELSE
BEGIN
SELECT id, Name FROM MyTable WHERE id = @i
END
END
Equivalent Microsoft SQL Server T-SQL version, generated
by SwisSQL Sybase to SQL Server Migration Tool:
/*(#!) SwisSQL - Sybase to SQL Server database migration tool
Migration done using version : 2.1
Migration performed at : Wed Oct 19 00:06:04 BST 2005 (!#)*/
--ADVENTNET DROP SCRIPTSIF EXISTS ( SELECT name from sysobjects where name='TestProcedure' AND type='P')
DROP PROCEDURE TestProcedure
GO
CREATE PROCEDURE dbo.TestProcedure
(
@i int
)
AS
SET NOCOUNT ON
BEGIN
IF @i < 0
BEGIN
RAISERROR ( '@i CANNOT BE LESS THAN 0.', 16, 1 )
END
ELSE
BEGIN
SELECT
id,
Name
FROM MyTable
WHERE id = @i
END
END
GO
The above is just a simple example, but this product is
capable of converting more complex queries, stored procedures
and other Sybase SQL Scripts into SQL Server.
The only downside I can think of is that, this product
is a Java based application, and as such does not conform
to Microsoft Windows User Interface guidelines. For example,
you may not be able to close a dialog box by pressing
the Esc key. Or Ctrl + C may not copy text to clipboard,
for example. But don't get discouraged by this comment,
as the product itself is a powerful tool for the DBA and
database developer community involved in database migrations.
I was assured by SwisSQL that they are working on improving
the usability of the product.
Here's a tip. By default, every time you start this application,
a command prompt window also starts up, and stays open,
as long as the main application is open. If this annoys
you, then there's a way to prevent this command prompt
window from staying visible. Here's how:
1) Edit the "runSybaseToSQLServer.bat" file under /bin/
folder
2) Modify the option as shown below:
Original statement:
"%javahome%\bin\java"
Modified statement:
start %javahome%\bin\javaw
Now start the product. The command prompt window will
be displayed only for a moment and it will disappear.
Well, this is it for now. You can download a free evaluation
version of SwisSQL Sybase to SQL Server Migration
Tool, from
here.