SQL Tran Docs
  • Overview
    • About
    • Getting started
    • Object lifecycle
    • Why is there no AI inside?
    • Performance considerations
    • Security considerations
    • Assessment
    • Unlocking projects
    • Interface walk-through
    • Translation scenarios
    • Prerequisites for Azure Marketplace deployment
  • Emulation scenarios
    • Emulation in SQL Tran
    • SQL Server to Fabric Warehouse
      • Data types
      • Case sensitivity
      • Cursors
        • Basic cursor loop
        • Cursor types
        • Fetch direction modes
        • Cursors in control flow
        • Nested cursors
        • Data modification cursors
        • Multiple cursors
        • Subqueries and filtering
      • Named procedure parameters
      • Result set limiting
      • MERGE statements
      • Computed columns
      • Temporary tables
      • External tables
      • Identity columns
      • Default values
      • Sequences
      • Unsupported system features
    • Synapse Analytics to Fabric Warehouse
      • Data types
      • Case sensitivity
      • Named procedure parameters
      • Result set limiting
      • MERGE statements
      • Temporary tables
      • External tables
      • Identity columns
      • Default values
      • Materialized views
      • Create table as select (CTAS)
      • Unsupported system features
    • SQL Server to Synapse Analytics
    • Oracle to PostgreSQL
  • Project wizard
    • Source database
    • Target database
    • Wrapping up
  • Projects
    • Project list
    • Overview
    • Workspace
    • Reports
    • Tests
    • Scratch pad
    • Settings
      • Project name
      • Mapping
      • Database connections
    • Navigation
    • Object complexity
    • Static analysis
    • Translation errors
    • Exporting and importing projects
  • Workspace
    • Object tree
    • Data lineage
    • Code
    • Actions
      • Overriding source
      • Overriding target
      • Ignoring objects
  • Tests
    • Workflow
    • Configure SQL Tran
    • Connecting to databases
      • Fabric Warehouse
      • Synapse Dedicated SQL Pool
      • Azure SQL Database, Azure SQL Managed Instance, Microsoft SQL Server
    • Tables
    • Views
    • Procedures
    • Functions
    • Triggers
    • Performance tests
  • Scripter
    • About
    • Supported databases
    • SQL Server
    • Azure SQL
    • Synapse Dedicated Pool
    • Oracle
    • PostgreSQL
    • MySQL
  • Microsoft training - SQL Tran
    • Introduction
    • Licensing plans
    • Deploying and activating
    • Creating a new project
    • Exploring the "Overview" screen
Powered by GitBook
On this page
  • Emulation context
  • Emulation strategy
  • Code example
  • Important notes
  1. Emulation scenarios
  2. SQL Server to Fabric Warehouse

Unsupported system features

Emulation context

In Microsoft SQL Server, system objects such as built-in stored procedures, system catalog views, user and login commands, and DBCC utilities are frequently used for diagnostics, metadata inspection, and server-level configuration. These include objects like:

  • sp_addrolemember, sp_showspaceused, sp_set_firewall_rule

  • sys.sequences, sys.dm_* views

  • CREATE USER, ALTER DATABASE, and DBCC commands

However, Microsoft Fabric Warehouse supports only a limited subset of system-level operations and configuration objects, excluding many features commonly used for administration and diagnostics. Fabric does not allow direct manipulation of roles, users, database configuration, or extended diagnostics using T-SQL. These system features must be removed or restructured during migration.


Emulation strategy

SQL Tran does not emulate or rewrite system-level constructs. Instead:

  • For traceability purposes, unsupported system commands and procedures are commented out using: /* SQLTRAN FIX: ... */

  • Certain T-SQL features and constructs are flagged using diagnostic comments such as: -- SQLTRAN FABRIC LIMITATION:

  • No transformation or replacement logic is generated for these constructs, as there is no equivalent in Fabric's SQL surface.

  • SQL Tran preserves the original structure to allow downstream review and manual rewriting.


Code example

SQL Server:

CREATE PROCEDURE [dbo].[GetPromotedPeople]
AS
BEGIN
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

	SELECT BusinessEntityID, FirstName, LastName, EmailPromotion
	FROM Person.Person
	WHERE EmailPromotion > 0
	ORDER BY EmailPromotion DESC;
END;

Fabric Warehouse (generated by SQL Tran):

-- SQLTRAN FABRIC LIMITATION: -- SET TRANSACTION ISOLATION LEVEL
CREATE PROCEDURE [dbo].[GetPromotedPeople]
AS
BEGIN
	SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

	SELECT BusinessEntityID, FirstName, LastName, EmailPromotion
	FROM Person.Person
	WHERE EmailPromotion > 0
	ORDER BY EmailPromotion DESC;
END;

Important notes

  • System procedures are not supported: SQL Server built-in procedures such as sp_addrolemember, sp_helpuser, sp_set_firewall_rule, and sp_showspaceused are not available in Fabric and are commented out by SQL Tran.

  • DBCC and administrative commands are removed: DBCC statements like CHECKDB, USEROPTIONS, and platform-level commands such as CREATE USER or ALTER DATABASE are not supported in Fabric and are commented out.

  • System views are selectively supported: While many system catalog views like sys.sequences are not available in Fabric, others like sys.objects are accessible. SQL Tran only flags unsupported views.

  • XML methods are flagged: Unsupported XML methods such as .value() are identified and annotated by SQL Tran using diagnostic comments. These are not supported in Fabric’s SQL engine.

  • Unsupported system clauses and special constructs: SQL Tran flags T-SQL clauses and constructs that are not classified as system objects but are unsupported in Fabric, including: $PARTITION, FOR JSON, FOR XML, FOR BROWSE, and recursive common table expressions (CTEs). These are preserved in the translated output but must be manually replaced or removed.

  • Full-text search not supported: Microsoft Fabric does not support SQL Server full-text search features such as FREETEXTTABLE, CONTAINSTABLE, FREETEXT, or CONTAINS. These rely on full-text indexes, catalogs, and semantic search infrastructure, none of which exist in Fabric. SQL Tran retains these statements and flags them with a -- SQLTRAN FABRIC LIMITATION: -- FULL-TEXT SEARCH comment, but does not rewrite or emulate their behavior. Any full-text search logic must be manually removed or reimplemented using Fabric-supported techniques, such as LIKE, CHARINDEX, or preprocessed keyword filtering.

  • Identity functions unsupported: Fabric does not support identity-tracking functions such as @@IDENTITY, SCOPE_IDENTITY(), or IDENT_CURRENT(). These functions depend on identity columns and engine-level metadata that are not available in Fabric’s distributed environment. SQL Tran preserves these statements in the translated output but flags them with a -- SQLTRAN FABRIC LIMITATION: comment. Any logic that depends on retrieving identity values must be manually reworked using Fabric-compatible alternatives such as NEWID(), ROW_NUMBER(), or custom sequencing strategies based on sequences or output parameters.

  • No emulation or fallback is generated: SQL Tran does not attempt to simulate or replace unsupported system objects or features. All such usage must be manually reviewed.

  • Manual review required: Any logic that depends on system-level behavior, metadata access, or administrative commands must be reviewed and rewritten using Fabric-compatible ingestion tools, platform APIs, or equivalent logic external to the warehouse SQL surface.

PreviousSequencesNextSynapse Analytics to Fabric Warehouse

Last updated 7 days ago

Unsupported feature emulation in SQL Tran