如何测试数据库是否托管在SQL Azure上?

时间:2014-02-05 16:03:26

标签: sql-server entity-framework azure-sql-database entity-framework-6

是否可以测试数据库是否托管在SQL Azure上?我正在寻找用于EF6的SqlAzureExecutionStrategy,并且只想在数据库实际是SQL Azure数据库时应用。

目前我正在测试App是否在Azure中运行。但是,我们正在考虑允许客户端自己托管数据库,因此需要一些方法来确定数据库是SQL Server还是Azure SQL。

假设EF不知道它隐藏了实现细节。

我猜可能只有配置设置。只是想知道它是否在技术上可行。

2 个答案:

答案 0 :(得分:21)

SELECT CASE ServerProperty('EngineEdition')
         WHEN 1 THEN 'Personal'
         WHEN 2 THEN 'Standard'
         WHEN 3 THEN 'Enterprise'
         WHEN 4 THEN 'Express'
         WHEN 5 THEN 'Azure'
         ELSE 'Unknown'
       END

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

答案 1 :(得分:6)

我一直在使用与gvee,ServerProperty()相同的功能,但使用不同的属性名称:

IF ServerProperty('Edition') = 'SQL Azure'
    PRINT 'true'

对我来说,这更容易阅读,也可以自我记录。