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_rulesys.dm_*viewsCREATE USER,ALTER DATABASE, andDBCCcommands
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;
Important notes
- System procedures are not supported:
Synapse built-in procedures such as
sp_addrolemember,sp_helpuser,sp_set_firewall_rule, andsp_showspaceusedare 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 asCREATE USERorALTER DATABASEare 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.objectsare 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.