Search code examples
sql-serverentity-frameworkazure-sql-databaseentity-framework-6

How to test if database is hosted on SQL Azure?


Is it possible to test whether a database is hosted on SQL Azure? I am looking at SqlAzureExecutionStrategy for EF6 and only want to apply if the database is actually SQL Azure database.

Currently I am testing if App is running within Azure. However we are looking at allowing clients to host DB themselves so would like some way to identify if DB is a SQL Server or Azure SQL.

Assume EF won't know as it is hiding the implementation details.

Could just have a config setting I guess. Just wondered if it was technically possible.


Solution

  • Updated August 2021 to align with updated documentation

    SELECT CASE ServerProperty('EngineEdition')
             WHEN 1 THEN 'Personal'
             WHEN 2 THEN 'Standard'
             WHEN 3 THEN 'Enterprise'
             WHEN 4 THEN 'Express'
             WHEN 5 THEN 'SQL Database'
             WHEN 6 THEN 'Azure Synapse Analytics'
             WHEN 8 THEN 'Azure SQL Managed Instance'
             WHEN 9 THEN 'Azure SQL Edge'
             WHEN 11 THEN 'Azure Synapse serverless SQL pool'
             ELSE 'Unknown'
           END
    

    http://technet.microsoft.com/en-us/library/ms174396.aspx