Caché Transact-SQL (TSQL) Migration Guide
[Back] [Next]
Go to:

Caché TSQL is an implementation of Transact-SQL which supports many of the features of both the Microsoft and Sybase implementations. Transact-SQL is used with Microsoft SQL Server (MSSQL) and Sybase Adaptive Server.

Caché TSQL also contains a few proprietary extensions not found in either of these implementations. These are described in the Commands chapter.
This document will help you to quickly migrate schemas and stored procedures from Microsoft or Sybase databases and it will provide you with an understanding of the TSQL (Transact-SQL) implementation in Caché.
Getting Started
To migrate existing TSQL applications to Caché TSQL, you need to perform three operations: configure Caché for TSQL, migrate the TSQL source code, and migrate the data.
Configuring TSQL
To configure your system for TSQL:
Migrating Source Code
The initial application migration is simple:
  1. Migrate the DDL: Import table and view definitions using either the %SYSTEM.SQL.DDLImport() method (for single files) or the %SYSTEM.SQL.DDLImportDir() method (for multiple files in a directory). Set the DDLMode parameter to either "MSSQLServer" or "Sybase". For further details, see the InterSystems Class Reference.
    Alternatively, you can invoke $SYSTEM.SQL.TSQL(), $SYSTEM.SQL.Sybase() or $SYSTEM.SQL.MSSQLServer() method to import the schema. For further details, see the InterSystems Class Reference.
    If the TSQL source contains CREATE PROC statements, then a class method containing the CREATE PROC source is created. Caché places this class method in either an existing class or in a new class whose name is based on the schema and procedure name. If the procedure already exists, then the existing version is replaced by the new version. If a class matching the class name generated from the schema and procedure already exists, then this class name is used — if it was previously generated by the TSQL utility. If not, then a unique class name is generated, based on the schema and procedure name. The resulting class is compiled once the procedure has been successfully created. If logging is requested then the source statements are logged along with the name of the containing class, class method, and the formal arguments generated. Any errors encountered by the process are also reported in the log. If an error is detected during CREATE PROC processing, Caché deletes any new class that was generated for that procedure.
  2. Inspect the log file for errors: Search by Error #. A summary count of errors and successful imports will appear at the end of the log. In most cases, errors can be worked around or addressed by using information found in this document.
  3. Compile: When you import DDL, table and view definition compilation is automatically performed. To compile other TSQL source code, it is best to use the command as follows:
      DO $SYSTEM.OBJ.CompileAll("-l")
    The lowercase “L” qualifier flag specifies that locking is not applied for the duration of the compile. For a full list of flag qualifiers, call DO $SYSTEM.OBJ.ShowFlags().
Migrating the Data
In the Management Portal select [Home] > [SQL], then select the Data Migration Wizard.
TSQL Language Implementation
TSQL procedures are converted to Caché methods or queries with a Language type equal to TSQL. Use the following command:
DO ##class(%TSQL.Manager).load("sybase",<filename>,<logname>)
When compiling TSQL methods, Caché ObjectScript code is generated. There is no system-level support for native TSQL. It is best to maintain the methods in TSQL to retain the familiar look of the original stored procedures.