2011-12-27 5 views
1

Я пытаюсь получить версию SQL Server 2008 и выше версии с помощью WMI, я использую класс ComputerManagement10 и запрос оИспользование WMI, чтобы получить SQL Server версии 2008 не удается

select PropertyStrValue 
from SqlServiceAdvancedProperty 
where PropertyName = \'VERSION\' and ServiceName =\'MSSQL$SQL2008R2SP1'\' 

где ServiceName - это экземпляр SQL Server.

я испытываю странную проблему, что ожидаемый результат (PropertyStrValue поле) я получаю отличается от обычной select @@version или «Щелкните правой кнопкой мыши -> Свойства» (из sqlservr.exe)

версия получает WMI является «10,51. 2500.0 ", а оригинал -" 10.50.2500.0 "

Я проверил более двух раз, чтобы убедиться, что это правильный экземпляр, SQL Server, хост и т. Д., Но кажется, что я не единственный, кто испытал такого рода вещи.

Кто-нибудь знает, почему такое поведение происходит и как его исправить?

Кто-нибудь знает, надежно ли использовать WMI для получения версии SQL Server?

Заранее спасибо.

ответ

0

Я не могу комментировать об использовании WMI, но значение из select @@version или лучше select SERVERPROPERTY('ProductVersion') правильно

Кроме того, являются you doing this correctly в первую очередь?

+0

Просто любопытно, почему это лучше? Полагаясь на строковые переменные, а затем системный вызов кажется менее надежным – abatishchev

+0

@abatishchev: Это не «строка»: это внутренний вызов механизма БД, как правильный вызов WMI. Я подозреваю, что вызов WMI здесь неправильный (по моей ссылке), не использует тот же источник, и OP демонстрирует, что он ошибочен ... – gbn

+0

Но вы можете вызвать 'select SERVERPROPERTY ('ProductVersion1')', но можете ' t 'select @@ version1', вот что я имею в виду« надежный »- [имя_файла] (http://msdn.microsoft.com/en-us/library/ms174396.aspx) не проверяется во время компиляции – abatishchev

0

Я хочу знать версию SQL Server в своем приложении, и ваш запрос полезен.

У меня такая же ошибка!

Я нахожу это, если вы найдете что-нибудь:

Wrong SQL Version

Видимо просто ошибки, но это хорошо для меня

SQL Version list

10,50/10,51 => 2008 R2

10.00 => 2008

Смежные вопросы