Я предполагаю, вы имеете в виду «простой» SQL, а не «Палин» :-)
Если вы пытаетесь увидеть, если SQL работает на хосте можно попытаться подключиться к SQL Browser Service с помощью SSRP (SQL Server Resolution Protocol) (но это необходимо установить и запустить на сервере).
Вы можете попробовать подход «наилучшего предположения» и сделать TCP-соединение с портом 1433 (по умолчанию - SQL Server Database Engine). Если порт открыт, может случиться, что SQL Server прослушивает - вы могли бы попытаться подключиться к SQL Server и выполнить команду (например, SELECT @@VERSION
или что-то конкретное для вашего приложения). Проблемы с этим подходом:
- SQL Server Database Engine может быть настроен на использование нестандартного TCP-порта.
- SQL Server может даже не использовать TCP - вам придется подключаться с использованием именованных каналов (я не уверен, как это делается).
- Некоторые другие службы могут быть настроены на использование TCP-порта 1433. Это не означает, что SQL Server прослушивает.
- Если порт 1433 открыт и используется SQL Server, вам необходимо предоставить учетные данные для подключения к нему и выполнения команд.
По сути, подход с наилучшими предположениями действительно будет работать только с SQL-серверами под вашим контролем.
Возникает вопрос: * Почему * Вы пытаетесь это сделать? – Tomalak
В моем SQL-сервере хранятся ссылки на контент, который предоставляется моему внешнему FTP-серверу. Я хочу, чтобы мой сервер проверял все X минут, включен ли ftp-бокс, если он не запускает обновление и помещает соответствующий континент как «темп». недоступен'. – KB22
Не следует ли это делать на уровне приложения, а не на уровне базы данных? – Tomalak