Próbuję ustalić, które instancje serwera SQL Express / SQL Express zostały zainstalowane (ręcznie lub programowo), ale wszystkie przykłady każą mi uruchomić zapytanie SQL w celu ustalenia, która zakłada, że jestem już połączona z konkretną instancją .
sql-server
sql-server-express
Łukasz
źródło
źródło
Odpowiedzi:
W wierszu polecenia:
lub
(Uwaga: musi być dużą literą L)
Spowoduje to wyświetlenie listy wszystkich serwerów SQL zainstalowanych w sieci. Istnieją opcje konfiguracji, które można ustawić, aby SQL Server nie pojawiał się na liście. Aby to zrobić ...
W wierszu polecenia:
Na liście włączonych protokołów wybierz „TCP / IP”, a następnie kliknij właściwości. Pole wyboru „Ukryj serwer” jest zaznaczone.
źródło
C:\> sqllocaldb i
Możesz zapytać o tę wartość rejestru, aby uzyskać wersję SQL bezpośrednio:
Alternatywnie możesz zapytać o nazwę instancji, a następnie użyć narzędzia sqlcmd z nazwą instancji, którą chcesz:
Aby zobaczyć nazwę instancji:
Następnie wykonaj to:
Jeśli używasz C ++, możesz użyć tego kodu, aby uzyskać informacje o rejestrze.
źródło
Wszystkie zainstalowane instancje powinny pojawić się w przystawce Usługi w konsoli Microsoft Management Console. Aby uzyskać nazwy instancji, przejdź do Start | Uruchom | wpisz Services.msc i poszukaj wszystkich wpisów za pomocą „Sql Server (nazwa instancji)”.
źródło
Get-Service | ?{ $_.Name -like "MSSQL*" }
- Zapytanie T-SQL, aby znaleźć listę instancji zainstalowanych na komputerze
źródło
sa
prawda?Wiem, że ten wątek jest trochę stary, ale natknąłem się na ten wątek, zanim znalazłem odpowiedź, której szukałem, i pomyślałem, że się podzielę. Jeśli używasz SQLExpress (lub localdb), istnieje prostszy sposób na znalezienie nazw instancji. W wierszu polecenia wpisz:
Spowoduje to wyświetlenie nazw instancji zainstalowanych lokalnie. Dlatego pełna nazwa serwera powinna zawierać (localdb) \ przed nazwą instancji, aby się połączyć. Ponadto sqllocaldb pozwala tworzyć nowe wystąpienia lub usuwać je, a także konfigurować. Zobacz: Narzędzie SqlLocalDB .
źródło
Jeśli chcesz tylko zobaczyć, co jest zainstalowane na komputerze, na którym jesteś aktualnie zalogowany, myślę, że najprostszym ręcznym procesem jest po prostu otwarcie programu SQL Server Configuration Manager (z menu Start), który wyświetla wszystkie usługi SQL (i tylko usługi SQL) na tym sprzęcie (uruchomionym lub nie). Zakłada się, że SQL Server 2005 lub nowszy; Zalecenie dotnetengineer dotyczące korzystania z konsoli zarządzania usługami pokaże wszystkie usługi i powinno być zawsze dostępne (na przykład w przypadku wcześniejszych wersji programu SQL Server).
Jeśli szukasz szerszego procesu wykrywania, możesz jednak rozważyć narzędzia innych firm, takie jak SQLRecon i SQLPing, które skanują sieć i tworzą raport o wszystkich wystąpieniach usługi SQL znalezionych na dowolnym serwerze, do którego mają dostęp. Minęło trochę czasu, odkąd użyłem takich narzędzi, ale byłem zaskoczony tym, co znaleźli (a mianowicie garstką przypadków, o których istnieniu nie wiedziałem). YMMV. Możesz uzyskać szczegółowe informacje od Google, ale uważam, że ta strona ma odpowiednie pliki do pobrania: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
źródło
SQL Server pozwala aplikacjom na wyszukiwanie wystąpień SQL Server w bieżącej sieci. Klasa SqlDataSourceEnumerator udostępnia te informacje twórcy aplikacji, udostępniając tabelę danych zawierającą informacje o wszystkich widocznych serwerach. Ta zwrócona tabela zawiera listę instancji serwera dostępnych w sieci, która jest zgodna z listą podaną, gdy użytkownik próbuje utworzyć nowe połączenie, i rozwija listę rozwijaną zawierającą wszystkie dostępne serwery w oknie dialogowym Właściwości połączenia. Wyświetlane wyniki nie zawsze są kompletne. Aby pobrać tabelę zawierającą informacje o dostępnych instancjach SQL Server, musisz najpierw pobrać moduł wyliczający, używając właściwości Shared / static Instance:
z msdn http://msdn.microsoft.com/en-us/library/a6t1z9x2(v=vs.80).aspx
źródło
SqlDataSourceEnumerator
nie jest jeszcze zaimplementowany, ale znajduje się na liście do dodania zgodnie z problemem GitHub .Usługa przeglądarki SQL Server http://msdn.microsoft.com/en-us/library/ms181087.aspx
źródło
Jeśli chcesz to ustalić w skrypcie, możesz spróbować:
Uwaga: grep jest częścią narzędzi gnuwin32
źródło
findstr
zamiastgrep
tego.W wierszu polecenia systemu Windows wpisz:
Gdzie „nazwa_serwera” to nazwa dowolnego zdalnego serwera, na którym chcesz wyświetlić instancje SQL.
Wymaga to oczywiście wystarczających uprawnień.
źródło
To zapytanie powinno uzyskać nazwę serwera i nazwę instancji:
źródło
Miałem ten sam problem. Komenda „osql -L” wyświetlała tylko listę serwerów, ale bez nazw instancji (wyświetlana była tylko instancja mojego lokalnego serwera SQL). Dzięki Wireshark, sqlbrowser.exe (który można znaleźć w folderze współdzielonym instalacji SQL) znalazłem rozwiązanie mojego problemu.
Lokalne wystąpienie jest rozwiązywane przez wpis rejestru. Zdalne instancje są rozwiązywane przez transmisję UDP (port 1434) i SMB. Użyj „sqlbrowser.exe -c”, aby wyświetlić listę żądań.
Moja konfiguracja wykorzystuje 1 fizyczną i 3 wirtualne karty sieciowe. Gdybym użył polecenia „osql -L”, program sqlbrowser wyświetlił żądanie z jednego z wirtualnych adapterów (znajdujących się w innym segmencie sieci) zamiast fizycznego. osql wybiera adpatera na podstawie jego metryki. Możesz zobaczyć metrykę z poleceniem „wydruk trasy”. Dla mojej konfiguracji tabela routingu pokazała niższą metrykę dla wirtualnego adaptera niż dla fizycznej. Zmieniłem więc metrykę interfejsu we właściwościach sieci, odznaczając automatyczną metrykę w zaawansowanych ustawieniach sieci. osql używa teraz adaptera fizycznego.
źródło
Jeszcze jedną opcją byłoby uruchomienie raportu wykrywania SQLSERVER .. przejdź do nośnika instalacyjnego serwera sqlserver i kliknij dwukrotnie plik setup.exe
a na następnym ekranie przejdź do narzędzi i kliknij raport wykrywania, jak pokazano poniżej
Spowoduje to wyświetlenie wszystkich wystąpień wraz z wszystkimi funkcjami. Poniżej znajduje się migawka na moim komputerze
źródło
Właśnie zainstalowałem Sql server 2008, ale nie mogłem połączyć się z żadnymi instancjami bazy danych. Polecenia opublikowane przez @G Mastros nie zawierają aktywnych instancji.
Poszukałem usług i stwierdziłem, że agent serwera SQL został wyłączony. Naprawiłem go, ustawiając go na automatyczny, a następnie uruchamiając.
źródło
Miałem ten sam problem podczas oceny ponad 100 serwerów, miałem skrypt napisany w języku C # do przeglądania nazw usług składających się z SQL. Gdy instancje są instalowane na serwerze, SQL Server dodaje usługę dla każdej instancji o nazwie usługi. Może być różny dla różnych wersji, takich jak 2000–2008, ale na pewno istnieje usługa o nazwie instancji.
Biorę nazwę usługi i uzyskuję nazwę instancji z nazwy usługi. Oto przykładowy kod użyty z wynikiem zapytania WMI:
źródło
Oto prosta metoda: przejdź do Start, następnie Programy, następnie Microsoft SQL Server 2005, a następnie Narzędzia konfiguracyjne, a następnie SQL Server Menedżer konfiguracji, a następnie Konfiguracja sieci SQL Server 2005, a następnie Tutaj możesz zlokalizować wszystkie instancje zainstalowane na twoim komputerze.
źródło
Wiem, że to stary post, ale znalazłem fajne rozwiązanie z PoweShell, w którym można znaleźć instancje SQL zainstalowane na komputerze lokalnym lub zdalnym, w tym wersję, a także rozszerzyć uzyskać inne właściwości.
źródło
Polecenia
OSQL -L
iSQLCMD -L
pokażą wszystkie wystąpienia w sieci .Jeśli chcesz mieć listę wszystkich instancji na serwerze i nie masz ochoty na wykonywanie skryptów lub programowania, wykonaj następujące czynności:
sqlsrvr.exe
obrazyInstancje powinny być wymienione w kolumnie „Nazwa użytkownika” jako
MSSQL$INSTANCE_NAME
.I zacząłem myśleć, że słaby serwer działał w 63 instancjach, i zdałem sobie sprawę, że działało trzy (z których jeden zachowywał się jak totalny tyran z obciążeniem procesora ...)
źródło
Otrzyma instancje zapytania o rejestr serwera SQL „HKLM \ Software \ Microsoft \ Microsoft SQL Server \ Nazwy wystąpień \ SQL”
lub Użyj SQLCMD -L
źródło
Jeśli korzystasz z SSMS, możesz łatwiej użyć:
źródło