How to copy Azure database from Elastic Business Critical to Standard edition using ADF or T-SQL?

2025-06-12T14:27:14.35+00:00

I'm trying to copy an Azure SQL Database from an Elastic Pool in the Business Critical tier to a Standard (DTU-based) edition using T-SQL. However, the following attempt fails with the error:

Msg 40808, Level 16, State 1, Line 10: The edition 'BusinessCritical' does not support the service objective 'S2'.

It seems that the direct copy of a database from Business Critical to Standard via T-SQL isn't supported.

Question: Is there a supported way to achieve this ideally using TSQL or Azure Data Factory (ADF) without incurring high temporary costs from Business Critical?

Thanks in advance for your guidance.

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,582 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Marcin Policht 49,005 Reputation points MVP Volunteer Moderator
    2025-06-12T14:43:36.77+00:00

    Try one the following:

    Option 1: Use Azure Data Factory (ADF). This provides a fine-grained control, it's not performance-tier dependent, and can move just data

    1. Create an empty target database in the Standard (DTU) tier (S2, for example).
    2. Use ADF Copy Data Activity to copy:
      • From: Source Azure SQL DB (Business Critical, Elastic Pool)
      • To: Target Azure SQL DB (Standard DTU-based)
    3. Select:
      • Source/Target linked services using SQL authentication
      • Auto-create tables or use pre-created schema
      • Use staging if required (for large datasets)

    ADF can copy schema and data, but you may want to pre-create indexes, constraints, etc., if you need 100% parity.

    Option 2: Export/Import BACPAC via Azure Storage. This gives you full compatibility with any tiers and doesn't involve downtime

    1. Export the source DB to a BACPAC file (in Azure Blob Storage).
      
         -- In PowerShell or Azure CLI (not T-SQL), use:
      
         az sql db export --name your-db-name --resource-group your-rg \
      
         --server your-server-name --storage-key-type StorageAccessKey \
      
         --storage-key "your-key" --storage-uri "https://yourstorage.blob.core.windows.net/container/your.bacpac"
      
      
    2. Import that BACPAC into a new Standard-tier database:
      
         az sql db import --name new-db-name --edition Standard --service-objective S2 ...
      
      

    You can delete the BACPAC after import, and you won't incur extra Business Critical costs during the copy — Azure handles the resource movement in the backend.

    Option 3: Geo-Restore or Point-in-Time restore (this would involve an extra cost short term)

    • Restore the Business Critical DB to a General Purpose (vCore) or Standard (DTU) tier first
    • Then do the copy
    • Drawback: Requires temporary storage of a full DB in an intermediate tier, may incur higher costs briefly

    If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.

    hth

    Marcin


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.