RalanTech Logo

Sybase ASE to SQL Server migration – Challenges, Tips & Tricks

Author: Raju Chidambaram

Share this article

SAP announced the decision to sunset Sybase Adaptive Server Enterprise (ASE) and a few other Sybase products a while ago. There have been no new feature releases or upgrade announcements from SAP regarding Sybase ASE beyond 2025. The original end-of-maintenance (EOM) date for Sybase ASE is still set for 2025, which means customers need to either migrate away from Sybase ASE or refrain from investing further into their running Sybase systems, as there is no longer a viable return on investment (ROI) due to the impending end-of-life. This blog covers the challenges, technical  tips and tricks of migrating Sybase ASE to Microsoft SQL Server database. Though our team have done hundreds of migration using migration tools such as SSMA, Ispirer and AWS DMS , this blogs focused on SSMA based migration.

Migration Challenges Covered:

  1. Introduction and rationale for Sybase to SQL Server migration
  2. Complexity factors involved
  3. Overview of SQL Server Migration Assistant (SSMA) tool
  4. Areas that need migration (code, objects, jobs, settings etc.)
  5. Typical challenges and need for manual migration effort
  6. Specific migration issues and differences between Sybase and SQL Server
  7. Differences in data types, functionality, SQL syntax
  8. Considerations for data migration
  9. Other miscellaneous migration issues
cloud-technology

Sybase database migration challenges:

  1. Introduction and Rationale for Migration
  •    End-of-life for Sybase ASE approaching in 2025
  •    Migrating to SQL Server offers compatibility and essential migration tools
  •    Opportunity to migrate to a cloud-based SQL Server deployment

 

  1. Complexity Factors
  •    Heterogeneous technology stack
  •    Application types (custom-built vs. off-the-shelf)
  •    Volume of Sybase-specific SQL code
  •    Customization level
  •    Database Size
  •    Number of database Objects
  •    Backend Processes such as batch jobs
  •    Table Replication/HA

 

  1. SQL Server Migration Assistant (SSMA)
  •    Free tool from Microsoft to simplify migration process
  •    Automates assessment, schema conversion, SQL conversion, data migration, and testing
  •    Supports migration from Sybase ASE 11.9 and higher to SQL Server 2012 through 2022
  •    Few other competitive tools to consider ispirer and AWS Database migration services(DMS)

 

  1. Areas of Migration
  •    T-SQL code, stored procedures, triggers, UDFs
  •    Sybase system functions and global variables
  •    Tables, data types, user-defined types
  •    Batch jobs, maintenance jobs, proxy tables
  •    Data replication, high availability, disaster recovery
  •    Cron jobs, language/charsets, locales, configurations
  •    CT-Library/DB-Library applications
  1. Typical Challenges
  •    80/20 rule: 80% can be converted using SSMA, 20% requires manual effort
  •    Manual migration for dynamic SQL, proxy tables, incompatible objects, DB-LIB/CT-LIB code, deprecated functions/variables, custom objects

 

  1.  Notable Migration Issues
  •    String concatenation
  •    Binary to numeric conversion
  •    Group by clause
  •    Emulated functions
  •    Remote procedure calls
  •    Temporary tables
  •    Inserting timestamps
  •    Default column nullability
  •    Variable behavior in update statements
  •    Data truncation during inserts
  •    Default date/datetime format
  •    Cursor behavior

 

  1. Data Types and Functionality Differences
  •    Date/time data types
  •    String lengths
  •    Date range
  •    String concatenation syntax
  •    NULL handling
  •    CASE expression nesting
  •    Implicit conversions

 

  1. SQL Command Differences
  •    Transaction management
  •    Locking
  •    Error handling
  •    Isolation levels
  •    SELECT with DISTINCT

 

  1. Data Types and Functions
  •    Handling dates before 1753
  •    String concatenation
  •    Aggregate functions in UPDATE
  •    Character columns with NULLs
  •    Nested aggregates
  •    MIN/MAX with character columns

 

  1. T-SQL Syntax Differences
  •     ROLLBACK syntax
  •     Table hints
  •     ORDER BY with table name
  •     Global variables (@@ERROR, @@PAGESIZE, @@SQLSTATUS, @@TRANCHAINED, @@TRANSTATE, @@UNICHARSIZE)

 

  1. Data Migration Considerations
  •     Timestamps
  •     Numeric with scale > 26
  •     Constraints and bound rules
  •     Defaults vs. NULLs
  •     Identity columns
  •     Triggers

 

  1. Other Migration Issues
  •     Cursor scope
  •     Case sensitivity
  •     Reserved keywords
  •     Syb_identity pseudocolumn
  •     IDENTITY function syntax
  •     Login triggers
  •     Cross-database foreign keys
  •     Deprecated equivalents (DEFAULTS, RULES)
  •     Constraint names
  •     Dynamic SQL
  •     Proxy tables
  •     Variables in cursor declaration

 

 

Pros & Cons

Additional Technical Tips for navigating typical migration issues

Here are all the technical tips for migrating from Sybase ASE to SQL Server detailed in the document:

 

String Concatenation:

  • Use rtrim function in SQL Server to match Sybase behavior of trimming trailing spaces from nullable character columns before concatenation.

 

Binary to Numeric Conversion:

  • Modify queries to convert binary to integer before using it in numeric operations.

 

Group By Clause:

  • Modify queries to aggregate or include required columns in the group by clause.

 

Emulated Functions:

  • Replace emulated functions created by SSMA with native SQL Server functions or logic to avoid performance impact.

 

Remote Procedure Calls:

  • Set up linked servers in SQL Server to access Sybase procedures using four-part naming convention.

 

Temporary Tables:

  • Use ##tablename syntax in SQL Server for temporary tables instead of tempdb.schema.tablename used in Sybase.

 

Inserting Timestamps:

  • Use SSMA to create a new ssma_timestamp column and migrate data. Update applications to use the new column.

 

Default Column Nullability:

  • Explicitly specify NOT NULL for required columns during migration since SQL Server defaults to NULL.

 

Variable Behavior in Update Statements:

  • Restructure update logic in SQL Server since it updates variables before columns, unlike Sybase.

 

Data Truncation During Inserts:

  • Ensure data doesn’t violate column length limitations before inserting into SQL Server.

 

Default Date/Datetime Format:

  • Convert source data to the target format before migration.

 

Cursor Behavior:

  • Reorganize cursor logic in SQL Server to declare and open inner cursor within outer cursor’s open block. Explicitly deallocate cursors.

 

Data Types:

  • For dates before 1753, use native Sybase handling or implement special handling in SQL Server.
  • Use SSIS or change data type for numerics with scale > 26 in SQL Server.

 

Functionality:

  • Use + for string concatenation instead of || in SQL Server.
  • Handle NULL comparisons/concatenations explicitly in SQL Server if needed.
  • Avoid deep CASE nesting in SQL Server.
  • Use explicit casting when mixing binary and character data in SQL Server.

 

SQL Commands:

  • Use @@TRANCOUNT checks for transaction management in SQL Server.
  • Use DELETE TOP (0) WITH (TABLOCK) for locking instead of LOCK TABLE.
  • Adjust RAISERROR usage for argument handling and formatting.
  • Use isolation hints (WITH (READUNCOMMITTED)) for isolation levels.
  • Make adjustments for DISTINCT with ORDER BY.

 

Data Migration:

  • Map timestamps to binary(8) and add timestamp column with @@DBTS default.
  • Set Check Constraint=true to check constraints/bound rules.
  • Verify KeepNulls and Fire Triggers settings in SSMA.

 

Other Issues:

  • Declare cursors as local or rewrite to deallocate explicitly.
  • Enclose reserved keywords in square brackets (e.g. [FUNCTION]).
  • Replace Syb_identity with IDENTITYCOL.
  • Replace identity(precision) with identity(numeric(precision)).
  • Rewrite dynamic SQL manually or use Statements window in SSMA.
  • Use linked servers, views, four-part names for proxy tables.
  • Move variable declarations before open and add DEALLOCATE for cursors.

Why Choose Us? 

RalanTech Advantage:

  • Our Experience + Knowledge base + Custom Accelerator + Proven processes
  • Minimal disruption
  • Faster migration
  • Expert Tuning – we just don’t duplicate poor performance.
  • Best practice setup from the ground up
  • Expert License / Infrastructure / Architecture recommendations
  • Right sizing the target Systems (Cloud/on-prem)
  • Getting it right the first time
  • On-Time project completion
  • Dedicated resources / Leads / PM

What we can do? 

We can migrate any version of Sybase from ASE 12.x through ASE16: Sybase To Oracle, Sybase to SQL Server, Sybase to PostgreSQL, Sybase to AWS Aurora.

Conclusion

RalanTech’s database migration experts have done hundreds of cross database migrations. Feel free to contact us at info@ralantech.com for more information. Subscribe to our newsletter and stay tuned for the upcoming blogs on Sybase Replication migration, Sybase HA migration and other latest technology trends.

Recent Blogs

Data Warehouse vs Data Lake
Blog
Data Warehouse vs Data Lake: Key Differences
Blog
Best Practices & Tips to Improve Oracle Database Performance
supply chain management
Blog
Transforming Logistics and Supply Chain with Oracle OCI

Sign up for our Newsletter