Caché Transact-SQL (TSQL) Migration Guide
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
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é.
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.
To configure your system for TSQL:
Go into the Caché Management Portal
. Go to [Home] > [Configuration] > [SQL Settings]
, then select TSQL Compatibility Settings
. Here you can specify the dialect (Sybase or MSSQL), and turn on or off the ANSI_NULLS
, and QUOTED_IDENTIFIER
settings. The default for all three is off. These values are used to set the ^%SYS(tsql,SET,...) global array values.
In the Management Portal
, select [Home] > [Configuration] > [SQL Settings] > [General SQL Settings]
, then set the Default SQL Schema Name
. This will be the destination schema (which maps to a package) for all unqualified DDL entities.
In the Management Portal
, select [Home] > [Configuration] > [SQL Settings]
, the select User-defined DDL Mappings
to map any needed user data types.
The initial application migration is simple:
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.
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.
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:
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()
TSQL Language Implementation
TSQL procedures are converted to Caché methods or queries with a Language
type equal to TSQL
. Use the following command:
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.