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

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

Спасибо!

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

5 ответов

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам