2016-04-08 22 views
2

Şu anda SQL Server'da saat dilimi dönüşümleri için SQL CLR kullanıyorum ve güvenli olmayan bir derleme olduğundan Azure'da çalıştıramıyorum. Şirket içi ve Azure'u desteklediğimiz bir iş gerekliliği. Azure için AT TIME ZONE işlevini kullanmayı ve şirket içi SQL CLR'yi kullanmayı düşünüyorum.SQL Server'ın 'AT TIME ZONE' özelliğini destekleyip desteklemediğini nasıl programlayabilirim?

Mümkünse aksamı çağırıyorsa, 'AT TIME ZONE' kullanan tek bir sql işlevi ekleyebilmeyi isterim.

İşlev oluşturmak için sql'yi çalıştırmadan önce bir sözdizimini kullanarak bir test sorgusu çalıştırabilir ve bir hata varsa başka bir tane oluşturabilirim ... ancak bu, bir örneğin yedeğinin daha eski bir dosyaya yüklendiğinde hata içerebileceği anlamına gelebilir sözdizimini desteklemeyen sql sunucu sürümü (ör. 2016 - 2014).

Veritabanının bu sözdizimini destekleyip desteklemediğini test etmek için en iyi yöntem (tercihen SQL ifadesinin içinde) nedir?

cevap

5

TIME ZONE, SQL Server 2016'da (CTP 3.1 ile başlayan) ve Azure SQL Database'in (V12) en son sürümünde bulunan yeni bir özelliktir. Ayrıca SQL2016'nın tüm sürümlerinde ve Azure SQL veritabanının tüm hizmet katmanlarında da bulunur. ZAMANDA BÖLGE desteklenip desteklenmediğini belirlemek için en iyi yolu aşağıdaki sorguyu çalıştırarak sunucu sürümünü kontrol etmektir, söyledikten

SELECT SERVERPROPERTY ('Edition') as Edition 
     SERVERPROPERTY('ProductVersion')as VersionNumber 

Sürüm = 'SQL Azure' Eğer VersionNumber> = '12' olması gerekenden daha !

Baskısı = 'SQL Azure' Sürüm Numarası olduğundan daha> = '13 olmak .0.800.000' (CTP 3.1)

SUNUCU mülkiyet check out ilgili ayrıntılı bilgi için MSDN: https://msdn.microsoft.com/en-in/library/ms174396.aspx

sayesinde, Borko Novakovic (MSFT)