SQLCMD -L-Option mit geringerem Timeout

884
Shade

Ich versuche, den sqlcmd -L cBefehl zu verwenden, um den Instanznamen des SQL-Servers herauszufinden, der auf dem lokalen Computer ausgeführt wird. Es gelingt, aber ich muss eine volle Minute warten, bis das Tool erkennt, dass es keine anderen Server im Netzwerk gibt.

Gibt es eine Möglichkeit, das sqlcmd -LTimeout auf ein kürzeres Zeitintervall einzustellen ?

1

1 Antwort auf die Frage

1
KCotreau

Der Punkt von -L besteht darin, alle Server im gesamten Netzwerk zu finden. Sie können also nicht das gesamte Netzwerk scannen, und der Switch funktioniert nicht mit anderen Switches. Das Timeout hängt wirklich von Ihrem Netzwerk und seiner Konfiguration ab.

Versuchen Sie nur, die Instanznamen zu finden? Was wollen Sie konkret erreichen?

Ja, ich versuche den Instanznamen zu bekommen. Ich erforsche auch andere Optionen, wie das Lesen von "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Instanznamen", aber mein Windows-Skripting-Wissen lässt mich ein wenig ausfallen ... Shade vor 12 Jahren 0
@Shade Wie und warum versuchst du, den Instanznamen zu bekommen? Wenn Sie es nur sehen und herausfinden müssen, was es ist, gibt es einfachere Wege, aber wenn Sie es aus programmatischen Gründen angehen müssen, ist dies etwas schwieriger und spezifischer. KCotreau vor 12 Jahren 0
PS Sie werden die Antwort nicht in der Registry finden. So lange dauert das Scannen Ihres Netzwerks. ABER, es kann andere Wege geben, aber Sie müssen sagen, was Sie erreichen wollen, nicht was Sie tun möchten. KCotreau vor 12 Jahren 0
Ich möchte nur den String-Namen der Instanz haben. Ich verwende es in Kombination mit der Variablen% hostname%, um eine Verbindung zu meinem lokalen Server herzustellen, da das Skript die genaue Kombination aus Hostname und Instanz nicht kennt und TCP-Verbindungen in der Serverkonfiguration deaktiviert sind. Shade vor 12 Jahren 0
@Shade Ich weiß nicht, ob dies helfen wird, aber ich habe eine Datei "script.sql" mit dieser Datei erstellt: Wählen Sie @@ Servername + '\' + @@ Servicename und dann diesen Befehl mit sqlcmd: SQLCMD -ic: \ temp \ sqlquery1.sql /oc:\temp\instance.txt. Sie können dann möglicherweise die Daten extrahieren und in Ihrem Programm aus der ausgegebenen Textdatei verwenden. Diese script.sql muss auf dem SQL Server laufen. Wenn nicht, müssen Sie möglicherweise mit der Zeitüberschreitung leben. KCotreau vor 12 Jahren 0
Ich möchte jedoch eine Verbindung zum Server herstellen und weiß nicht, wie der Instanzname lautet. Daher kann ich keine Abfrage auf diesem Server ausführen. Gibt es nicht eine Skript-freundlichere Art, den Instanznamen abzufragen> Shade vor 12 Jahren 0