Как я могу проверить соединение с SQL Server из DOS? - PullRequest
1 голос
/ 23 октября 2009

Я пытаюсь выяснить, как «проверить подключение» к базе данных 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 не работает для меня, хотя у меня есть экземпляр прослушивания.

1 Ответ

2 голосов
/ 23 октября 2009

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

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

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 это то, что вы ищете.

...