2009-10-23 3 views
1

Я пытаюсь выяснить, как «проверить подключение» к базе данных SQL Server из DOS. Если сбой подключения, мне нужно обнаружить отказ.Как я могу проверить подключение SQL Server от DOS?

sqlcmd -Q "select 'a test'" -S .\SQLEXPRESS 

Вы заметите, что эта команда не возвращает значение true/false. Кроме того, если экземпляр не существует, время истекает. Я хочу что-то подобное, что не имеет «тайм-аут» вопрос, что делает ожидание пользователя:

if (connectivity exists to local) (
    setup DSN for local 
) else (
    setup DSN for local\SQLEXPRESS 
) 

странно, osql.exe -L не работает для меня, хотя у меня есть прослушивание пример.

+2

Кстати, это не «DOS», а скорее «командная строка Windows». :-) – Heinzi

ответ

2

Таймаут: Я не думаю, что вы сможете избежать тайм-аута, если вы действительно хотите «проверить подключение». Но см. Ниже альтернативу.

Булевский ответ: Достаточно, если команда возвращает допустимый уровень ошибок. Например, следующий код должен работать:

osql -E -S SERVER\INSTANCE -Q "" 
if ERRORLEVEL 1 (
    exit script 
) else (
    setup DSN 
) 

Таймаут свободной альтернативой: Если SQL Server всегда находится на локальной машине, и вы просто хотите, чтобы проверить, установлен ли конкретный экземпляр или нет, попробуйте посмотрев в реестре (используя команду reg). HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances - это то, что вы ищете.

Смежные вопросы