Blog Post

SQL Server Blog
3 MIN READ

SSMA Copilot for SAP ASE (Sybase)

subhojitbasak's avatar
subhojitbasak
Icon for Microsoft rankMicrosoft
Feb 12, 2026

Introduction

SAP ASE (formerly Sybase) continues to power mission‑critical workloads across financial services, telecom, and large-scale enterprise applications. However, as modernization accelerates, more customers are actively seeking reliable and automated paths to migrate Sybase workloads to Microsoft SQL Server and Azure SQL Targets.

While Sybase’s T-SQL dialect shares several similarities with Microsoft SQL Server, its procedural code contains deep complexities—extended syntax, non-standard constructs, legacy system tables, and database‑scoped behaviors that often break traditional rule-based converters. These nuances make stored procedures, triggers, and packages some of the hardest assets to migrate.

To address these challenges, the SQL Migration team is expanding Copilot-based code conversion capabilities to SSMA SAP ASE, following the same intuitive user flow as the Oracle-to-SQL Copilot released earlier. This new AI-assisted experience dramatically reduces manual fix-up effort, boosts conversion accuracy, and empowers users to modernize complex Sybase assets with confidence.

Why We Built This

SSMA’s rule engine already auto-converts a significant portion of Sybase code—typically around 70% for standard workloads. But rule-based systems hit limitations when faced with:

  • Proprietary Sybase syntax variations
  • Conditional logic or cursors expressed in non-standard forms
  • System-level commands not supported in SQL Server
  • Ambiguous constructs requiring contextual interpretation

These gaps often force users into tedious manual rewriting.

By bringing agentic AI into the equation, Copilot attempts to fill the missing 30%—providing syntactically correct, context-aware, and fully explained code conversions. Instead of relying solely on static rules, Copilot understands intent, identifies root-causes of failures, and generates SQL Server-compatible alternatives with transparent reasoning.

This combination of deterministic rule engine + adaptive AI unlocks a far more complete, scalable, and user-friendly migration experience.

Authentication Methods

SSMA for SAP ASE offers two simple ways to authenticate with Copilot, giving customers flexibility based on their security and infrastructure needs.

Option 1: Bring Your Own Key (Azure OpenAI)
Connect SSMA to your own Azure OpenAI resource using your deployment details and key. This option is ideal for organizations that already manage Azure OpenAI or require strict control over their AI environment.

Option 2: Microsoft‑Managed Endpoint (Preview)
A new, seamless experience where no API key is needed. Users simply sign in with Microsoft Entra ID, and SSMA handles authentication through a secure browser-based flow.

For detailed setup steps and prerequisites for both authentication options, refer to the SSMA Copilot Learn documentation.

What Copilot Offers

When the “Fix with Copilot” button is triggered, SSMA opens a structured tri-pane experience designed for clarity and trust:

1. Errors to Fix

Shows issues that the rule engine could not convert—whether due to unsupported syntax, parse failures, or ambiguous constructs.
This helps users quickly understand where the rule engine struggled.

2. Explanation

Provides a detailed, human-readable breakdown of:

  • Why the conversion failed
  • What the Copilot-generated fix means
  • How the logic differs from Sybase to SQL Server

This section builds trust, making AI-generated code fully interpretable.

3. Code Review Window

Displays a side-by-side diff:

  • Left: SSMA-generated output
  • Right: Copilot-converted SQL code

Changes are highlighted so users can validate improvements, understand transformations, and decide whether to apply the Copilot output.

From an implementation and architecture point of view, this is similar to SSMA Oracle to SQL Code Conversion Copilot. To know more about how the AI model has been trained, refer to this blog.

Sample Use Case (as illustrated in the GIF)

In the example shown in the blog GIF, a Sybase stored procedure fails conversion because:

  • It uses set switch on drop_system_tables with override, no_info—a Sybase-only command unsupported in SQL Server.
  • The procedure definition contains create or replace procedure, which is not valid T‑SQL syntax.
  • The rule engine cannot parse the affected block, causing SSMA to output the original Sybase procedure as a commented fallback.

When Copilot is invoked:

  • It identifies the unsupported keywords
  • Suggests correct SQL Server equivalents (e.g., translating create or replace into IF EXISTS ... DROP + CREATE PROCEDURE)
  • Generates a complete, runnable T‑SQL procedure
  • Explains why each fix was made

This allows users to resolve previously conversion‑blocking issues instantly.

To learn more, Copilot in SSMA

Real‑World Impact

With SSMA’s SAP ASE Copilot, teams can migrate Sybase workloads with significantly less manual effort. Developers, DBAs, and architects gain:

  • Faster conversion cycles
  • Higher code accuracy
  • Clear explanations that improve learning and long-term maintainability
  • Independence from long, multi-step manual rewrite processes

This Copilot experience transforms complex procedural conversions into guided, high-confidence workflows—making modernization more accessible for organizations of all sizes.

Published Feb 12, 2026
Version 1.0

1 Comment

  • ialmashreqi's avatar
    ialmashreqi
    Occasional Reader

    {

      "totalElements": 0,

      "totalPages": 0,

      "pageable": {

        "pageSize": 0,

        "pageNumber": 0,

        "offset": 0,

        "sort": {

          "sorted": true,

          "empty": true,

          "unsorted": true

        },

        "paged": true,

        "unpaged": true

      },

      "size": 0,

      "content": [

        {

          "collectionType": "string",

          "collectionName": "string",

          "collectionImg": "string",

          "description": "string",

          "securityMessage": "string",

          "projectSecurityMessage": "string",

          "packageId": "string",

          "packageName": "string",

          "projectName": "string",

          "projectImg": "string",

          "creatorAddress": "string",

          "creatorName": "string",

          "creatorImg": "string",

          "creatorSecurityMessage": "string",

          "socialWebsite": "string",

          "nftsCount": 0,

          "latestPrice": 0,

          "volume": 0,

          "holdersCount": 0,

          "marketplaces": [

            "string"

          ],

          "createTimestamp": 0

        }

      ],

      "number": 0,

      "sort": {

        "sorted": true,

        "empty": true,

        "unsorted": true

      },

      "first": true,

      "last": true,

      "numberOfElements": 0,

      "empty": true

    }