External tables
Emulation context
In SQL Server, external tables allow users to query data stored in external sources — such as Hadoop, Azure Data Lake, or blob storage — as if it were tables in the local database. These tables are typically declared using a combination of:
CREATE EXTERNAL DATA SOURCE
CREATE EXTERNAL FILE FORMAT
CREATE EXTERNAL TABLE
orCREATE EXTERNAL TABLE AS SELECT
(CETAS)
For example:
However, according to official documentation, Microsoft Fabric Warehouse does not support external tables. There is no equivalent syntax or engine-level support for defining tables that directly point to remote storage or external sources in the same way. Instead, Fabric requires data to be ingested into the warehouse using supported ingestion tools such as the COPY
statement, pipelines, or dataflows.
Due to this incompatibility, SQL Server external table definitions must be removed, rewritten, or replaced using Fabric-supported ingestion methods during migration.
Emulation strategy
As of the current version, SQL Tran does not emulate or translate external table constructs. Instead:
CREATE EXTERNAL TABLE
,CREATE EXTERNAL TABLE AS SELECT
,CREATE EXTERNAL DATA SOURCE
, andCREATE EXTERNAL FILE FORMAT
statements are passed through unchanged.In some cases, SQL Tran emits a comment such as:
No transformation is performed to convert the external table into a standard
CREATE TABLE
.SQL Tran does not produce ingestion logic such as
COPY INTO
,CREATE TABLE AS SELECT
(CTAS), orOPENROWSET
.
All logic involving external data access must be rewritten outside SQL Tran using Fabric-supported ingestion techniques.
Code example
SQL Server:
Fabric Warehouse (generated by SQL Tran):
Important notes
Not supported in Fabric: External tables are explicitly listed as not supported in Microsoft Fabric according to official documentation.
No emulation: SQL Tran does not convert external tables into Fabric-compatible structures such as
CREATE TABLE
orCTAS
, and no ingestion logic is generated. Statements likeCREATE EXTERNAL DATA SOURCE
andCREATE EXTERNAL FILE FORMAT
are also not translated and may result in syntax errors in Fabric or remain as pass-through code that requires manual removal. However, the overall script structure is preserved, allowing the rest of the schema to be parsed and reviewed.No data linkage preserved: References to remote files or storage systems (e.g., via
DATA_SOURCE
,LOCATION
) are retained verbatim. They must be removed or replaced manually.Manual data ingestion required: SQL Tran does not generate any Fabric-compatible ingestion statements. Fabric supports ingestion through
COPY
(T-SQL), pipelines, dataflows, andOPENROWSET
withCTAS
. Any required data loading must be implemented manually using Fabric-supported ingestion tools outside SQL Tran.Manual review required: Because external table declarations are not translated and ingestion logic is not provided, users must review affected code. Any necessary data source connections and query logic must be re-implemented using Fabric-supported mechanisms.
Last updated