Ich versuche festzustellen, welche Instanzen von SQL Server / SQL Express ich installiert habe (entweder manuell oder programmgesteuert), aber alle Beispiele fordern mich auf, eine SQL-Abfrage auszuführen, um festzustellen, ob ich bereits mit einer bestimmten Instanz verbunden bin .
224
Antworten:
An einer Kommandozeile:
oder
(Hinweis: muss ein Großbuchstabe L sein)
Dadurch werden alle in Ihrem Netzwerk installierten SQL Server aufgelistet. Sie können Konfigurationsoptionen festlegen, um zu verhindern, dass ein SQL Server in der Liste angezeigt wird. Um dies zu tun...
An der Kommandozeile:
Wählen Sie in der Liste der aktivierten Protokolle 'TCP / IP' aus und klicken Sie auf Eigenschaften. Es gibt ein Kontrollkästchen für "Server ausblenden".
quelle
C:\> sqllocaldb i
Sie können diesen Registrierungswert abfragen, um die SQL-Version direkt abzurufen:
Alternativ können Sie Ihren Instanznamen abfragen und dann sqlcmd mit Ihrem gewünschten Instanznamen verwenden:
So sehen Sie Ihren Instanznamen:
Führen Sie dann Folgendes aus:
Wenn Sie C ++ verwenden, können Sie diesen Code verwenden, um die Registrierungsinformationen abzurufen.
quelle
Alle installierten Instanzen sollten im Services Snap-In in der Microsoft Management Console angezeigt werden. Um die Instanznamen abzurufen, gehen Sie zu Start | Führen Sie | aus Geben Sie Services.msc ein und suchen Sie nach allen Einträgen mit "SQL Server (Instanzname)".
quelle
Get-Service | ?{ $_.Name -like "MSSQL*" }
- T-SQL-Abfrage, um eine Liste der auf einem Computer installierten Instanzen zu finden
quelle
sa
nicht wahr?Ich weiß, dass dieser Thread etwas alt ist, aber ich bin auf diesen Thread gestoßen, bevor ich die Antwort gefunden habe, nach der ich gesucht habe, und dachte, ich würde sie teilen. Wenn Sie SQLExpress (oder localdb) verwenden, gibt es eine einfachere Möglichkeit, Ihre Instanznamen zu finden. Geben Sie an einer Befehlszeile Folgendes ein:
Dadurch werden die Instanznamen aufgelistet, die Sie lokal installiert haben. Daher sollte Ihr vollständiger Servername (localdb) \ vor dem Instanznamen enthalten, um eine Verbindung herzustellen. Mit sqllocaldb können Sie außerdem neue Instanzen erstellen oder löschen sowie konfigurieren. Siehe: SqlLocalDB-Dienstprogramm .
quelle
Wenn Sie nur sehen möchten, was auf dem Computer installiert ist, auf dem Sie gerade angemeldet sind, ist es meiner Meinung nach am einfachsten, einfach den SQL Server-Konfigurations-Manager (über das Startmenü) zu öffnen, in dem alle SQL-Dienste (und) angezeigt werden nur SQL-Dienste) auf dieser Hardware (ausgeführt oder nicht). Dies setzt SQL Server 2005 oder höher voraus. Die Empfehlung von dotnetengineer zur Verwendung der Services Management Console zeigt Ihnen alle Dienste an und sollte immer verfügbar sein (wenn Sie beispielsweise frühere Versionen von SQL Server ausführen ).
Wenn Sie jedoch nach einem umfassenderen Erkennungsprozess suchen, sollten Sie Tools von Drittanbietern wie SQLRecon und SQLPing in Betracht ziehen, die Ihr Netzwerk scannen und einen Bericht über alle SQL Service-Instanzen erstellen, die auf einem Server gefunden wurden, auf den sie Zugriff haben. Es ist schon eine Weile her, dass ich solche Tools verwendet habe, aber ich war überrascht, was sie fanden (nämlich eine Handvoll Fälle, von denen ich nicht wusste, dass sie existieren). YMMV. Sie könnten Google für Details, aber ich glaube, diese Seite hat die relevanten Downloads: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
quelle
Mit SQL Server können Anwendungen SQL Server-Instanzen im aktuellen Netzwerk finden. Die SqlDataSourceEnumerator-Klasse stellt diese Informationen dem Anwendungsentwickler zur Verfügung und stellt eine DataTable bereit, die Informationen zu allen sichtbaren Servern enthält. Diese zurückgegebene Tabelle enthält eine Liste der im Netzwerk verfügbaren Serverinstanzen, die mit der Liste übereinstimmt, die beim Versuch eines Benutzers, eine neue Verbindung herzustellen, bereitgestellt wird, und erweitert die Dropdown-Liste mit allen verfügbaren Servern im Dialogfeld Verbindungseigenschaften. Die angezeigten Ergebnisse sind nicht immer vollständig. Um die Tabelle mit Informationen zu den verfügbaren SQL Server-Instanzen abzurufen, müssen Sie zuerst einen Enumerator mit der Eigenschaft shared / static Instance abrufen:
von msdn http://msdn.microsoft.com/en-us/library/a6t1z9x2(v=vs.80).aspx
quelle
SqlDataSourceEnumerator
ist es noch nicht implementiert, steht jedoch auf der Liste, die gemäß dem GitHub-Problem hinzugefügt werden soll .SQL Server-Browserdienst http://msdn.microsoft.com/en-us/library/ms181087.aspx
quelle
Wenn Sie dies in einem Skript ermitteln möchten, können Sie Folgendes versuchen:
Hinweis: grep ist Teil der gnuwin32-Tools
quelle
findstr
stattdessengrep
dafür verwenden.Geben Sie in der Windows-Befehlszeile Folgendes ein:
Dabei ist "Servername" der Name eines Remote-Servers, auf dem Sie die SQL-Instanzen anzeigen möchten.
Dies erfordert natürlich genügend Berechtigungen.
quelle
Diese Abfrage sollte Ihnen den Servernamen und den Instanznamen geben:
quelle
Ich hatte das gleiche Problem. Der Befehl "osql -L" zeigte nur eine Liste von Servern an, jedoch ohne Instanznamen (nur die Instanz meines lokalen SQL-Servers wurde angezeigt). Mit Wireshark, sqlbrowser.exe (das sich im freigegebenen Ordner Ihrer SQL-Installation befindet), habe ich eine Lösung für mein Problem gefunden.
Die lokale Instanz wird durch einen Registrierungseintrag aufgelöst. Die Remote-Instanzen werden durch UDP-Broadcast (Port 1434) und SMB aufgelöst. Verwenden Sie "sqlbrowser.exe -c", um die Anforderungen aufzulisten.
Meine Konfiguration verwendet 1 physischen und 3 virtuellen Netzwerkadapter. Wenn ich den Befehl "osql -L" verwendet habe, hat der sqlbrowser anstelle des physischen eine Anforderung von einem der virtuellen Adapter (der sich in einem anderen Netzwerksegment befindet) angezeigt. osql wählt den Adpater anhand seiner Metrik aus. Sie können die Metrik mit dem Befehl "route print" sehen. Für meine Konfiguration zeigte die Routing-Tabelle eine niedrigere Metrik für den virtuellen Adapter als für den physischen. Daher habe ich die Schnittstellenmetrik in den Netzwerkeigenschaften geändert, indem ich die automatische Metrik in den erweiterten Netzwerkeinstellungen deaktiviert habe. osql verwendet jetzt den physischen Adapter.
quelle
Eine weitere Option wäre, den SQLSERVER-Erkennungsbericht auszuführen. Gehen Sie zum Installationsmedium von sqlserver und doppelklicken Sie auf setup.exe
Gehen Sie im nächsten Bildschirm zu Tools und klicken Sie wie unten gezeigt auf Erkennungsbericht
Dies zeigt Ihnen alle vorhandenen Instanzen zusammen mit den gesamten Funktionen. Unten ist ein Schnappschuss auf meinem PC
quelle
Ich habe gerade SQL Server 2008 installiert, konnte aber keine Verbindung zu Datenbankinstanzen herstellen. Die Befehle @G Mastros haben keine aktiven Instanzen aufgelistet.
Also habe ich in den Diensten nachgesehen und festgestellt, dass der SQL Server-Agent deaktiviert war. Ich habe es behoben, indem ich es auf automatisch eingestellt und dann gestartet habe.
quelle
Ich hatte das gleiche Problem, als ich mehr als 100 Server untersuchte. Ich hatte ein Skript in C # geschrieben, um die Dienstnamen zu durchsuchen, die aus SQL bestehen. Bei der Installation von Instanzen auf dem Server fügt SQL Server für jede Instanz einen Dienst mit dem Dienstnamen hinzu. Es kann für verschiedene Versionen wie 2000 bis 2008 variieren, aber es gibt sicher einen Dienst mit Instanznamen.
Ich nehme den Dienstnamen und erhalte den Instanznamen aus dem Dienstnamen. Hier ist der Beispielcode, der mit dem WMI-Abfrageergebnis verwendet wird:
quelle
Hier ist eine einfache Methode: Gehen Sie zu Start, dann zu Programmen, dann zu Microsoft SQL Server 2005, dann zu den Konfigurationstools, dann zu SQL Server Configuration Manager, dann zu SQL Server 2005, Netzwerkkonfiguration und dann zu Hier. Hier finden Sie alle auf Ihrem Computer installierten Instanzen.
quelle
Ich weiß, dass es ein alter Beitrag ist, aber ich habe mit PoweShell eine gute Lösung gefunden, bei der Sie SQL-Instanzen finden können, die auf einem lokalen oder einem Remotecomputer installiert sind, einschließlich der Version, und auch andere Eigenschaften erhalten können.
quelle
Die Befehle
OSQL -L
undSQLCMD -L
zeigen Ihnen alle Instanzen im Netzwerk .Wenn Sie eine Liste aller Instanzen auf dem Server haben möchten und keine Lust auf Skripterstellung oder Programmierung haben, gehen Sie folgendermaßen vor:
sqlsrvr.exe
BilderDie Instanzen sollten in der Spalte "Benutzername" als aufgeführt sein
MSSQL$INSTANCE_NAME
.Und ich ging davon aus, dass auf dem armen Server 63 Instanzen ausgeführt wurden, und stellte fest, dass drei ausgeführt wurden (von denen sich eine mit der CPU-Auslastung wie ein totaler Mobber verhielt ...).
quelle
Ruft die Instanzen der SQL Server-Registrierungsabfrage "HKLM \ Software \ Microsoft \ Microsoft SQL Server \ Instanznamen \ SQL" ab.
oder Verwenden Sie SQLCMD -L
quelle
Wenn Sie sich in SSMS befinden, ist die Verwendung möglicherweise einfacher:
quelle