2016-07-24 57 views
1

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

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

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

回答

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和商业 智能。)

3 =企业(这是返回评估,开发者,都 企业版。)

4 =快(这将返回快车,用工具快速和 快递具有高级服务)

5 = SQL数据库

6 - SQL数据仓库

基础数据类型:int