Правильный способ определить, установлен ли SQLCMD.exe?

Я создаю библиотеку классов, которая принимает файлы .SQL в качестве входных данных (FileInfo) и строку соединения. Затем он пытается выполнить файл sql против соединения.

Я решил поддержать Microsoft SMO и SQLCMD.exe

При тестировании я заметил на многих компьютерах в моей среде, что SQLCMD не устанавливается по умолчанию. Мои ошибки программы при попытке запустить процесс SQLCMD.exe.

Каков правильный способ поискать его без поиска всего жесткого диска? Существует ли общее расположение реестра, которое указывает, установлено ли оно? Обычно, когда он установлен, я думаю, что установлено место PATH.

Большое спасибо.

Ответ 1

У меня есть машина с 64-разрядным SQL SERVER (2k8 R2), а мой SQLCMD.EXE находится в c:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE.

Он также находится на пути.

Вы можете просто найти путь непосредственно из местоположения реестра SQL Server:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup\path

Или вариант для этого для другой версии.

Большая проблема заключается в том, что SQLCMD является частью клиентских инструментов, а не SQL Server, поэтому я считаю, что вы не можете просить SQL Server рассказать вам. Если, конечно, вы не работаете на самом сервере.

Ответ 2

Запустите cmd.exe и используйте

where sqlcmd.exe