Jak uzyskać serwer SQL Server i nazwę instancji bieżącego połączenia za pomocą skryptu T-SQL?Jak uzyskać nazwę bieżącej instancji z T-SQL
Odpowiedz
Wystarczy znaleźć odpowiedź, w this SO question (dosłownie wewnątrz pytanie, nie każda odpowiedź):
SELECT @@servername
powraca nazwa_serwera \ instancji miarę nie jest to domyślne wystąpienie:
SELECT @@servicename
powraca nazwa instancji, nawet jeśli jest to domyślne (MSSQLSERVER)
Jak o tym:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl',
@value_name='MSSQLSERVER'
ten otrzyma nazwę instancji, jak również. null
oznacza domyślną instancję:
SELECT SERVERPROPERTY ('InstanceName')
SELECT SERVERPROPERTY ('InstanceName') daje mi NULL. – Steam
zamiast tego użyj SELECT CONVERT (sysname, SERVERPROPERTY ('servername')); –
@Steam: Prawdopodobnie dlatego, że jest domyślną instancją. –
SELECT @@servername
daje dane jako server/instanceName
Aby dostać tylko instanceName
należy uruchomić select @@ServiceName
zapytania.
Po pierwsze, masz ukośnik w niewłaściwy sposób. Poprawną formą jest "server \ instance". Po drugie, nie zawsze jest prawdą, że @@ servername da ci zarówno serwer, jak i instancję, ponieważ gdy istnieje tylko jedna instancja, zwróci ona tylko "serwer". – Robino
Znalazłem to:
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
To da ci listę wszystkich przypadkach zainstalowanych w serwerze.
Majątek
SERVERPROPERTY
funkcji i@@SERVERNAME
powrotnej podobnych informacjiServerName
. WłaściwośćServerName
udostępnia serwer Windows i nazwę instancji, które razem tworzą unikalną instancję serwera.@@SERVERNAME
udostępnia aktualnie skonfigurowaną nazwę lokalnego serwera.
i Microsoft przykładem dla bieżącego serwera jest:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
Ten scenariusz jest przydatna, gdy istnieje wiele instancji SQL Server zainstalowane na serwerze Windows, a klient musi otworzyć kolejne połączenie do ta sama instancja używana przez bieżące połączenie.
SELECT CONVERT (sysname, SERVERPROPERTY ('servername')); jest poprawną odpowiedzią –
Dlaczego warto zatrzymać się pod samą nazwą instancji? Możesz dokonać inwentaryzacji środowiska SQL Server, wykonując następujące czynności:
SELECT
SERVERPROPERTY('ServerName') AS ServerName,
SERVERPROPERTY('MachineName') AS MachineName,
CASE
WHEN SERVERPROPERTY('InstanceName') IS NULL THEN ''
ELSE SERVERPROPERTY('InstanceName')
END AS InstanceName,
'' as Port, --need to update to strip from Servername. Note: Assumes Registered Server is named with Port
SUBSTRING ((SELECT @@VERSION),1, CHARINDEX('-',(SELECT @@VERSION))-1) as ProductName,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ProductMajorVersion') AS ProductMajorVersion,
SERVERPROPERTY('ProductMinorVersion') AS ProductMinorVersion,
SERVERPROPERTY('ProductBuild') AS ProductBuild,
SERVERPROPERTY('Edition') AS Edition,
CASE SERVERPROPERTY('EngineEdition')
WHEN 1 THEN 'PERSONAL'
WHEN 2 THEN 'STANDARD'
WHEN 3 THEN 'ENTERPRISE'
WHEN 4 THEN 'EXPRESS'
WHEN 5 THEN 'SQL DATABASE'
WHEN 6 THEN 'SQL DATAWAREHOUSE'
END AS EngineEdition,
CASE SERVERPROPERTY('IsHadrEnabled')
WHEN 0 THEN 'The Always On Availability Groups feature is disabled'
WHEN 1 THEN 'The Always On Availability Groups feature is enabled'
ELSE 'Not applicable'
END AS HadrEnabled,
CASE SERVERPROPERTY('HadrManagerStatus')
WHEN 0 THEN 'Not started, pending communication'
WHEN 1 THEN 'Started and running'
WHEN 2 THEN 'Not started and failed'
ELSE 'Not applicable'
END AS HadrManagerStatus,
CASE SERVERPROPERTY('IsSingleUser') WHEN 0 THEN 'No' ELSE 'Yes' END AS InSingleUserMode,
CASE SERVERPROPERTY('IsClustered')
WHEN 1 THEN 'Clustered'
WHEN 0 THEN 'Not Clustered'
ELSE 'Not applicable'
END AS IsClustered,
'' as ServerEnvironment,
'' as ServerStatus,
'' as Comments
- 1. Jak uzyskać nazwę bieżącej funkcji?
- 2. Jak uzyskać nazwę bieżącej strony PHP
- 3. Jak uzyskać nazwę instancji z instancji w AWS?
- 4. Asp.net MVC 3- uzyskać bieżącej instancji kontrolera (nie tylko wymienić)
- 5. Jak uzyskać kwalifikowaną nazwę z instancji typu w obszarze Dart?
- 6. Jak uzyskać nazwę bieżącej właściwości za pomocą odbicia?
- 7. Jak uzyskać bieżącej lokalizacji urządzeniu
- 8. Jak uzyskać numer bieżącej linii?
- 9. Uzyskaj nazwę instancji C#
- 10. Jak określić nazwę instancji LocalDb w skrypcie SQL?
- 11. TSQL: Jak uzyskać rozmiar dziennika transakcji?
- 12. Uzyskaj nazwę pola z klasy bez instancji
- 13. W MVC3, jak uzyskać nazwę bieżącego kontrolera?
- 14. Jak ustawić nazwę bieżącej sekcji działu w innym dziale?
- 15. Jak mogę uzyskać wszystkie nazwy baz danych w instancji serwera sql za pomocą tsql?
- 16. Jak uzyskać nazwę System.Xml.Linq.XNode?
- 17. jak uzyskać zapisy z poprzedniego dnia za pomocą tsql?
- 18. Jak uzyskać pogoda w bieżącej lokalizacji
- 19. Jak uzyskać prędkość bieżącej przepustowości (pobierania)?
- 20. sonata_type_collection: ustawić domyślną wartość pola z bieżącej instancji podmiotu
- 21. Jak uzyskać nazwę funkcji?
- 22. Jak uzyskać identyfikator procesu bieżącej instancji programu Excel, za pomocą języka VBA, bez używania podpisu?
- 23. Jak uzyskać referencję do bieżącej usługi?
- 24. Jak uzyskać PropertyDescriptor dla bieżącej właściwości?
- 25. VB.NET: Uzyskaj nazwę klasy instancji
- 26. Zmień nazwę instancji serwera sql
- 27. jak uzyskać nazwę bieżącej kategorii produktu (na stronie szczegółami produktu) w Magento
- 28. Jak uzyskać nazwę usługi Windows z app.config
- 29. Jak uzyskać nazwę klasyfikatora z właściwości Mavena?
- 30. Jak mogę uzyskać nazwę pliku z żądania.FILES?
Podaje mi tylko nazwę serwera, a nie nazwę wystąpienia. Serwer\??? – Steam
@ blasto, które wydaje się być zachowanie, gdy wystąpienie jest domyślne na serwerze. Spróbuj z nazwanym wystąpieniem. Sprawdź to: http://technet.microsoft.com/en-us/library/ms187944.aspx –
Niepoprawnie, użyj @@ servername, która może dać ci złą odpowiedź.SELECT CONVERT (sysname, SERVERPROPERTY ('servername')) jest poprawną odpowiedzią. Parametr @@ nazwa_serwera zgłasza nazwę klastra SQL, a właściwość serverproperty ("nazwa_serwera") zgłasza nazwę klastra systemu Windows. Nazwa klastra systemu Windows wymaga połączenia z bazą danych (nazwa klastra systemu Windows może być inna niż nazwa klastra SQL, co zwykle ma miejsce, gdy instalujesz nową wersję serwera sql na innym komputerze (@@ servername = Environment.MachineName) i chcesz zachować starą nazwę, abyś nie musiał zmieniać wszystkich konfiguracji). –