Emulation scenarios

Limitation detection

Emulation context

In Synapse Analytics, 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.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, as these constructs have no equivalent in Fabric's SQL surface.
  • SQL Tran preserves the original structure to allow downstream review and manual rewriting.

Code example

Synapse Analytics:

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

	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 UNCOMMITTED;

	SELECT BusinessEntityID, FirstName, LastName, EmailPromotion
	FROM Person.Person
	WHERE EmailPromotion > 0
	ORDER BY EmailPromotion DESC;
END;
Unsupported feature emulation in SQL Tran

Important notes

  • System procedures are not supported: Synapse 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 are not available in Fabric, others like sys.objects are accessible. SQL Tran only flags unsupported views.
  • 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.
  • 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.

If this was useful,
our newsletter will be too.

Get monthly insights on data engineering, AI, and building critical infrastructure - direct from the Spectral Core team and CEO Damir Bulic.