Опция SQLCMD -L с меньшим временем ожидания

703
Shade

Я пытаюсь использовать sqlcmd -L cкоманду, чтобы узнать имя экземпляра сервера SQL, работающего на локальной машине. Это успешно, но мне нужно подождать целую минуту, чтобы инструмент понял, что в сети нет других серверов.

Есть ли способ установить sqlcmd -Lтайм-аут на более короткий интервал времени?

1

1 ответ на вопрос

1
KCotreau

Смысл -L состоит в том, чтобы найти все серверы во всей сети, чтобы вы не могли обойти это сканирование всей сети, и этот коммутатор не будет работать с другими коммутаторами. Время ожидания действительно связано конкретно с вашей сетью и ее конфигурацией.

Вы просто пытаетесь найти имена экземпляров? Что конкретно вы пытаетесь достичь?

Да, я пытаюсь получить имя экземпляра. Я также изучаю другие варианты, такие как чтение "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Имена экземпляров", но мои знания сценариев Windows меня немного подрывают ... Shade 12 лет назад 0
@ Shade Как и почему вы пытаетесь получить имя экземпляра? Если вам просто нужно увидеть это и выяснить, что это такое, есть более простые способы, но если вам нужно обратиться к нему по программным причинам, это немного сложнее и более конкретно. KCotreau 12 лет назад 0
PS Вы не найдете ответ в реестре. Сколько времени занимает сканирование вашей сети. НО, могут быть и другие способы, но вы должны сказать, что вы хотите достичь, а не то, что вы хотите сделать. KCotreau 12 лет назад 0
Я просто хочу иметь строковое имя экземпляра. Я собираюсь использовать его в сочетании с переменной% hostname% для подключения к моему локальному серверу, поскольку сценарий не будет знать точную комбинацию имя_хоста / экземпляра, а соединения TCP отключены в конфигурации сервера. Shade 12 лет назад 0
@ Shade Я не знаю, поможет ли это, но я создал файл "script.sql" с этим в нем: выберите @@ имя_сервера + '\' + @@ servicename и затем эту команду с sqlcmd: SQLCMD -ic: \ temp \ sqlquery1.sql /oc:\temp\instance.txt. После этого вы сможете извлечь данные и использовать их в своей программе из выходного текстового файла. Этот скрипт.sql должен будет работать на сервере SQL. Если нет, возможно, вам придется жить с периодом ожидания. KCotreau 12 лет назад 0
Но я хочу подключиться к серверу и не знаю его имени экземпляра ... Поэтому я не могу выполнить запрос на этом сервере. Нет ли более удобного для сценария способа запроса имени экземпляра> Shade 12 лет назад 0