从ADO.net检测SQLServer功能

时间:2016-07-24 15:22:52

标签: .net sql-server

我有一个创建SQL表并启用DATA_COMPRESSION = Page的应用程序。但是,该功能仅在使用企业版SQLServer时可用。有时我想在SQLLocalDB SKU上使用相同的代码。对于这些情况,我想跳过DATA_COMPRESSION设置,因为它不受支持并引发错误。

我是否有可能检测到此功能是否可用(或次佳),检测到正在使用SQLLocalDB?

我使用ADO.net连接数据库。

1 个答案:

答案 0 :(得分:2)

您可以打开SqlConnection数据库并查看ServerVersion

using (var con = new SqlConnection(connectionString))
{
    connection.Open();
    // use con.ServerVersion
}

如果您想了解更多详细信息,可以使用SERVERPROPERTY

查询属性
SELECT SERVERPROPERTY('Edition') 

或者

SELECT SERVERPROPERTY('EngineEdition') 
  

安装在SQL Server实例上的数据库引擎版本   服务器

     

1 =个人或桌面引擎(在SQL Server 2005和   以后的版本。)

     

2 =标准(此标准,Web和Business返回   情报。)

     

3 = Enterprise(评估,开发人员和两者都返回此项   企业版。)

     

4 = Express(这是Express,Express返回的工具和   快递与高级服务)

     

5 = SQL数据库

     

6 - SQL数据仓库

     

基础数据类型:int