5

Bazı dinamik tablolar oluşturan saklı yordamım var. Sütun deposu dizinleri, SQL Server'ın ana bilgisayar sürümünde destekleniyorsa, bir sütun deposu indeksi oluşturmak istiyorum, aksi takdirde yalnızca normal bir satır deposu endeksi oluşturmak için geri dönüş yapıyorum.Geçerli SQL Server sürümünün sütun deposu dizinlerini destekleyip desteklemediğini sorgulama

Ben dm_db_persisted_sku_features tablo bulduk ama bu sadece standart dışı özellikleri şu anda oldukça desteklenmektedir olandan kullanılıyor ne söyler:

SELECT * FROM sys.dm_db_persisted_sku_features 

nasıl bir sorgudan içinden belirleyebilir eğer SQL Server sürüm ve sürüm desteği columnstore dizinleri?

+0

Neden * * baskısını kontrol desteklemeyen sürümleri üzerinde var? Yalnızca Enterprise sürümleri SQL Server 2016 SP1 –

+0

'dan önce sütun dosyalarını destekliyordu ancak sonra SQL Server sürümleri/hizmet paketlerinin vagary'larına gitmem gerekiyor. Ayrıca gelecekteki bir kanıt çözüm değildir. –

+0

Aslında, öyle. 2016 SP1'den önce, yalnızca Enterprise ve Developer sürümleri sütun sağlayıcıları destekledi. Bunu SERVERPROPERTY ('Edition') 'ile seçin. 2016 SP1 her şey için destek ekledi. –

cevap

1

2012 + özellikleriyle uyumlu olup olmadığını görmek için geçerli veritabanının uyumluluk düzeyini kontrol edebilirsiniz.

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() 

not:

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

columnstore endeksleri (örneğin 2014 Express)

+0

Uyumluluk düzeyi kazanıldı yardım et. Uyumluluk düzeyi 10 ile bile, SQL Server 2014+ [columnstore dizinlerine izin verir] (https://msdn.microsoft.com/en-us/library/bb510680.aspx). Sırasıyla satırda işlenecekler –

+0

Eğer OP, bir veritabanı üzerinde __should__ sütun deposu indeksleri oluşturup oluşturmadığını öğrenmek isterse, bu en iyi hareket tarzını döndürmez mi? – SqlZim