Запрос, чтобы определить, поддерживает ли текущая версия SQL Server индексы columnstore

У меня есть хранимая процедура, которая создает динамические таблицы. Если индексы columnstore поддерживаются в основной версии SQL Server, я хочу создать индекс columnstore, в противном случае можно вернуться к созданию обычного индекса хранилища строк.

Я нашел dm_db_persisted_sku_features Таблица, но это просто говорит вам, какие нестандартные функции в настоящее время используются, а не то, что поддерживается:

SELECT * FROM sys.dm_db_persisted_sku_features

Как я могу изнутри запроса определить, поддерживают ли версия и выпуск SQL Server индексы columnstore?

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'

существует в выпусках, которые не поддерживают индексы columnstore (например, 2014 Express)

Другие вопросы по тегам