Назад | Перейти на главную страницу

Команды SQL, если SQL существует только в сети

Я пытаюсь найти список всех серверов sql в сети, используя osql -L в командной строке. Эта команда работает, только если на компьютере, над которым я работаю, установлен SQLServer. Есть ли способ запустить эту команду, если SQLServer не установлен на этом конкретном компьютере, но установлен где-то в сети?

Спасибо!

РЕДАКТИРОВАТЬ: я пишу программу на java, поэтому простые перечисления, которые вы можете выполнять в .NET framework, мне не подходят.

Если вы ищете программу командной строки, которую можно запустить и получить обратно, посмотрите на Командную строку SQLPing3. Я знаю, что там написано, что это альфа-версия, но все работает нормально. Он будет использовать все известные методы для обнаружения SQL-сервера, который выходит за рамки osql -L (который просто выполняет широковещательную рассылку udp / 1434).

Командная строка SQLPing3 (и другие бесплатные инструменты от SQLSecurity.com)

Согласно документации утилиты, она должна отображать как локальные, так и сетевые серверы. Проблема может заключаться в том, что служба браузера SQL не запущена, и эта служба используется для получения списка всех серверов SQL в сети.

Служба браузера SQL: http://msdn.microsoft.com/en-us/library/ms181087.aspx

посмотрите на эту ссылку
http://www.sqldbatips.com/showarticle.asp?ID=45
Эта ссылка показывает, как сделать это с помощью кода через .Net framework, если вы ищете способ с другим языком программирования или платформой, скажите

Вы можете скачать SQLCMD отдельно с сайта компании microsofts:

Утилита запросов командной строки Microsoft SQL Server 2005

Замените вызов osql на sqlcmd. Аргументы и выходные данные командной строки одинаковы для ваших целей.

Прежде чем полагаться на объекты SMO, чтобы вернуть вам список доступных экземпляров SQL в сети, вы должны прочитать это о SqlDataSourceEnumerator. Он может возвращать неполные или непоследовательные результаты.