Как получить имена SQL Server без строки подключения

#c# #sql-server #ado.net

#c# #sql-сервер #ado.net

Вопрос:

Работа на C #, в одном из моих приложений мне нужно получить имена SQL Server. В сети у меня есть SQL Server 2000, 2005, 2008. Для моего приложения я хочу получить имена серверов.

 private string strConnection = @"Data Source=xxx;Initial Catalog=xxx;Integrated Security=True";

SqlConnection objConnection = new SqlConnection(strConnection);
objConnection.Open();
SqlCommand objCommand = new SqlCommand(“xxxxxxx”);
objCommand.ExecuteNonQuery();
objConnection.Close();
 

Если я знаю strConnection , то я могу использовать приведенный выше синтаксис. Но я не знаю имени сервера. В моем приложении сначала мне нужно знать имя сервера. Мне нужна помощь, чтобы получить имена серверов.

Ответ №1:

Существует довольно много вариантов, как найти их в коде — см.:

Существует еще несколько способов найти ваши SQL-серверы — работают ли эти варианты для вас??

Комментарии:

1. 1 ADO.NET класс полезности очень хороший. Я думал о nmaping, а что нет. 🙂

Ответ №2:

Взгляните на Scan network для экземпляров SQL Server, чтобы получить некоторые идеи о SQL Ping

Ответ №3:

Вы можете использовать использовать SmoApplication.Метод EnumAvailableSqlServers для перечисления списка доступных экземпляров SQL Server.

Комментарии:

1. Работает, но для этого требуется наличие SMO, что означает: а) либо установить клиентские инструменты SQL Server с помощью SMO, либо б) установить SMO отдельно.