查询以确定当前SQL Server版本是否支持列存储索引

时间:2017-02-13 17:17:04

标签: sql-server tsql feature-detection columnstore

我有一个存储过程,可以创建一些动态表。如果主机版本的SQL Server支持列存储索引,那么我想创建一个列存储索引,否则回退到只创建一个普通的行存储索引。

我找到了<img src=http://myservice.com/ShowImage.php?Id=10> 表,但它只是告诉你当前使用的是非标准功能而不是支持的功能:

dm_db_persisted_sku_features

如何从查询中确定SQL Server版本和版本是否支持列存储索引?

1 个答案:

答案 0 :(得分:1)

您可以检查当前数据库的兼容级别,看它是否与2012+功能兼容。

select 
  ColumnStore = case 
    when compatibility_level >= 110 
        and (serverproperty ('edition') like 'Enterprise%'
          or serverproperty ('edition') like 'Developer%')
      then 1 
    when compatibility_level >= 130 
      and serverproperty ('productlevel') != 'RTM'
      then 1 
    else 0 
    end
  from sys.databases 
  where name = db_name()

注意:

SELECT * from sys.system_objects where name='column_store_dictionaries'

存在于不支持列存储索引的版本(例如2014 Express)