Информация о версии не возвращается в перечислении SQL Server - PullRequest
0 голосов
/ 15 ноября 2011

В процессе установки мне нужно иметь возможность идентифицировать экземпляры и версии SQL Server, установленные на компьютере.

Я использую этот подход , чтобы получить список экземпляров SQL-сервера на локальной машине; Меня интересует только локальная машина.

Мне нужно получить все экземпляры и проверить версии. Нам нужен SQL Server 2008 R2 для приложения.

Однако я получаю следующее:

"MACHINENAME"
"MACHINENAME"
{}
true
{} (**)
true

тогда как я ожидал (**) иметь версию в нем.

Я вижу, что эта техника не работает, если на месте установлен брандмауэр:

Этот метод не может перечислить локальный экземпляр, если на сервере работает брандмауэр. межсетевой экран блокирует любой широковещательный трафик, генерируемый при вызове метода, даже если отправитель с локальной машины.

но я получаю один и тот же результат, независимо от включения или отключения брандмауэра.

Есть какие-нибудь предложения относительно того, что я делаю неправильно?

1 Ответ

1 голос
/ 15 ноября 2011

Не знаю, но после того, как вы вернете список серверов, просто запросите их. Вы можете использовать SqlCommand для отправки запроса «select @@ version» или класс Server в пространстве имен Microsoft.SqlServer.Management.Smo для получения этой информации.

...