SQL Server migration path

SQL Server to Fabric Lakehouse

Translate SQL Server tables and queries to Spark SQL, and move stored procedures and functions into PySpark for Fabric Lakehouse.

The job to be done

Move the work, not just the words.

A migration becomes expensive when every object arrives as a separate mystery. Start with the workload as a whole, then sort the result into three useful categories: what can move directly, what needs adaptation, and what deserves a deliberate engineering decision.

For this path, that means understanding SQL Server schemas, T-SQL, built-ins, dependencies, procedures, functions, and triggers. and producing Spark SQL for relational objects and Python or PySpark for procedural logic.. The differences that could affect production behavior are surfaced while the team can still act on them, not after they have become deployment surprises.

Why this path is difficult

A lakehouse target changes where SQL Server logic runs

SQL Server tables and queries can move toward Spark SQL, but stored procedures, functions, triggers, and procedural workflows cannot simply be copied into a Fabric Lakehouse. A T-SQL rewrite alone leaves the execution model unresolved.

How the work gets done

SQL Tran separates the workload into Spark SQL for relational objects and PySpark for procedural behavior. It translates both from the same SQL Server model, keeping dependencies and findings connected across the two output planes.

Where it helps

This fits SQL Server estates moving reporting or transformation workloads into Fabric Lakehouse, where the target team needs Delta-ready data objects and executable PySpark rather than an incomplete T-SQL dump.

The payoff

Know what is ready, what changed, and what still needs a decision.

A real assessment before commitment

The translation runs up front, then becomes an object inventory, coverage view, complexity signal, and findings list. You see the work before you plan it.

Target code that preserves intent

SQL Server tables, views, and queries become Spark SQL for the Fabric Lakehouse relational plane. T-SQL procedures, functions, triggers, and procedural workflows become PySpark code for the Spark execution plane.

Evidence for the decisions that remain

Generated tests compare source and target behavior for tables, views, functions, and procedures. Performance is recorded alongside correctness, so a passing translation is not mistaken for a fast one.

Where the work happens

The details that make or break this migration.

These are the source patterns that usually create rework. Each card explains the target-aware treatment, so your team can see what is being adapted and where a decision is still required instead of discovering a mismatch during deployment.

SQL Server tables and views to Spark SQL

Translate relational DDL, views, and queries into Spark SQL for the Fabric Lakehouse data plane, with dependencies preserved for deployment and review.

T-SQL procedures to PySpark

Move stored procedures, functions, triggers, and transformation logic into PySpark where the Spark runtime can execute it and the target team can maintain it.

T-SQL expressions for Spark

Adapt SQL Server built-ins, date and string functions, casts, joins, and null behavior to Spark-compatible output instead of leaving semantic cleanup to hand edits.

Cross-plane dependencies

Show how PySpark workflows depend on Spark SQL tables and views, so the migration produces an executable plan rather than separate SQL and Python folders.

Behavior and performance tests

Compare source results with Spark output and exercise procedural paths before promotion, while keeping performance observations visible for the target workload.

The path to confidence

See the work. Make the call. Prove the result.

Assessment, translation, and testing stay connected, so your team can see what the software handled automatically, what it changed to fit the target, and which decisions still need a human owner.

  1. Assess

    Find the true migration surface

    Connect or upload SQL Server code. The parser reads every object, builds dependencies, scores complexity, and shows where Fabric Lakehouse needs a different construct.

  2. Translate

    Convert the codebase as a system

    Relational and procedural objects are translated together, with source semantics kept in context. Where Fabric Lakehouse has no direct equivalent, the engine uses a supported rewrite or names the gap clearly.

  3. Validate

    Turn output into migration evidence

    Deploy the generated target objects to staging, inspect the differences, run generated tests, and use the results to focus engineering time on the exceptions that matter.

The source and target

Make the change easy to explain.

A script that runs is not proof that a migration worked. The real question is what the target needed in order to preserve the workload’s intent, and whether those changes have been tested. SQL Tran keeps that answer visible at the object level.

Source semantics

SQL Server schemas, T-SQL, built-ins, dependencies, procedures, functions, and triggers.

Target expression

Spark SQL for relational objects and Python or PySpark for procedural logic.

Evidence you can use

Make the decision easy to defend.

This is not a black box. Findings stay attached to the translated workload, so engineers can inspect the change while decision-makers can see what remains before they approve the move.

SQL Server-to-Spark SQL translation

T-SQL-to-PySpark procedural output

Generated cross-plane behavior tests

Your review list

Find the hard parts before they find you.

Every migration has a boundary. Surface it early, and reviewers can spend their time on the few decisions that shape the result instead of rereading thousands of generated lines.

  • SQL Server-to-Spark SQL translation
  • T-SQL-to-PySpark procedural output
  • Generated source-versus-target tests

Your working set

What the assessment leaves you with

  • An inventory of tables, views, procedures, functions, triggers, and the code volume in each group
  • A dependency graph that shows object relationships, unresolved references, and the highest-impact objects to review first
  • Generated target output produced by the same translation engine that reports the assessment: Spark SQL for relational objects and PySpark for procedural logic in Fabric Lakehouse.
  • Object-level findings that identify target gaps, translation errors, and the exact code that needs review
  • Behavior tests with expected result sets, changed data, messages, or output values ready for source-versus-target comparison

Take the next step

Replace the guess with an answer from your codebase.

Run the assessment against your objects, dependencies, and target version. We do that by running full translation and exposing the real result. That tells you exactly what translates cleanly, what changes, and what needs your attention.

Start the assessment