SqlTran Overview
Migrating database objects
SqlTran supports translation of your whole database. The following objects are migrated:- Tables - including indexes on them, and foreign key constraints
- Views
- Procedures
- Functions
- Triggers
- Table data, including long text and binary fields
Migrating data
Table data is migrated using the advanced algorithms, enabling SqlTran handle even the largest databases. SqlTran copies data in full speed with low memory footprint, even if database size is measured in terabytes. Instead of loading whole tables into memory, then transforming the data for correct output, SqlTran processes data in small chunks, while taking advantage of primary and unique keys to fetch data in fastest possible way without putting strain on source database server.How does translation work?
SqlTran has advanced SQL code parsers, which parse and tag thousands of lines of your SQL code per second. We have built an advanced translator engine on top of these parsers. This means that a medium-size database is parsed and translated in just a few seconds. In fact, our parsers and translators are so fast, we translate all your database objects each time you load the saved project!Simply put, SqlTran will read your database code and metadata by connecting to live source database server, or by reading it from provided SQL script. It then goes through each and every database object definition, analyzing each statement, expression, variable declaration, exception handling, etc. For each statement one or more statements are generated in native target database format, which achieves the same thing. Things get much more complex internally, of course, as each database has its own set of rules.
What if we want to customize the translation?
In cases where a specific code construct is not supported for automatic translation, or you simply have to rewrite a non-portable code, you can mark any number of database objects as manually overriden. In that case, you are free to change the generated SQL code, and SqlTran won't touch your changes. You can even save your changes as complete or incomplete, so when target database is generated, incomplete changes can be skipped. Of course, you can also choose to skip any objects you don't need in the target.What is the average percentage of automatic translation?
This highly depends on the style of programming source database programmers have. There are some code constructs which can't be translated, nor emulated using alternative SQL statements. While our translator is powerful enough to enable us to do all the translation theoretically possible (and is improved continuously), we can't make the target database do something it isn't designed to do.Typical automatic translation success is 95%-100% using version 1.0 of SqlTran. Of course, this percentage will grow over time.
What to do if SqlTran doesn't translate something we need?
There are two scenarios for this.- In the first case, code construct can and should be handled by our translator, but we didn't yet add the support for it. Send us your translation project (we made it super-easy) and describe the problem. Our developers will take a look and upgrade the application to handle this case.
- You used totally non-portable code. You queried system tables or server parameters for which there is no equivalent in the target database. To succesfully translate that, programming logic has to be significantly altered. Our developers can do that for you for additional charge. The cost depends on the complexity of your code and amount of work involved.



