Jak uzyskać serwer SQL Server i nazwę wystąpienia bieżącego połączenia za pomocą skryptu T-SQL?
sql
sql-server
tsql
sql-server-2008r2-express
Guillermo Gutiérrez
źródło
źródło
SELECT @@SERVERNAME
daje wynik potrzebny do połączenia za pomocąsqlcmd -S
. Jeśli jest to domyślna instancja MSSQLSERVER, to nie można jej określić w parametrze -S. To jest wersja 64-bitowa dla programistów z 2017 r. 14.0.2002.14.Odpowiedzi:
Właśnie znalazłem odpowiedź, w tym pytaniu SO (dosłownie, wewnątrz pytania, nie ma żadnej odpowiedzi):
SELECT @@servername
zwraca nazwa_serwera \ instancja, o ile nie jest to instancja domyślna
SELECT @@servicename
zwraca nazwę instancji, nawet jeśli jest to wartość domyślna (MSSQLSERVER)
źródło
Co powiesz na to:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl', @value_name='MSSQLSERVER'
Spowoduje to również uzyskanie nazwy instancji.
null
oznacza instancję domyślną:SELECT SERVERPROPERTY ('InstanceName')
http://technet.microsoft.com/en-us/library/ms174396.aspx
źródło
SELECT @@servername
poda Ci dane jakoserver/instanceName
Aby uzyskać tylko to
instanceName
, należy uruchomićselect @@ServiceName
zapytanie.źródło
Znalazłem to:
EXECUTE xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\Microsoft\Microsoft SQL Server', @value_name = 'InstalledInstances'
To da ci listę wszystkich instancji zainstalowanych na twoim serwerze.
Przykładem firmy Microsoft dla obecnego serwera jest:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
źródło
Dlaczego poprzestać tylko na nazwie instancji? Możesz inwentaryzować swoje środowisko SQL Server za pomocą:
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
źródło
Aby uzyskać listę serwerów i instancji, z którymi masz połączenie:
select * from Sys.Servers
Aby uzyskać listę baz danych, które posiada podłączony serwer:
SELECT * from sys.databases;
źródło
Tylko po to, aby dodać wyjaśnienia do zapytań rejestru. Podają tylko wystąpienia pasującej bitowości (32 lub 64) dla bieżącej instancji.
Rzeczywisty klucz rejestru dla 32-bitowych instancji SQL w 64-bitowym systemie operacyjnym to:
Możesz wysłać zapytanie do instancji 64-bitowej, aby uzyskać również wszystkie instancje 32-bitowe. Wystąpienie 32-bitowe wydaje się ograniczone do Wow6432Node, więc nie może odczytać 64-bitowego drzewa rejestru.
źródło
inna metoda znajdowania nazwy instancji - kliknij prawym przyciskiem myszy nazwę bazy danych i wybierz opcję Właściwości, w tej części możesz zobaczyć właściwości połączenia w lewym dolnym rogu, kliknij, aby wyświetlić nazwę instancji.
źródło