Como posso obter o servidor SQL Server e o nome da instância da conexão atual, usando um script T-SQL?
sql
sql-server
tsql
sql-server-2008r2-express
Guillermo Gutiérrez
fonte
fonte
SELECT @@SERVERNAME
produz o resultado necessário para conectar usandosqlcmd -S
. Se for a instância padrão do MSSQLSERVER, então ela não deve ser especificada no parâmetro -S. Isso é em 2017, 14.0.2002.14 Developer edition, 64 bits.Respostas:
Acabei de encontrar a resposta, nesta pergunta SO (literalmente, dentro da pergunta, nenhuma resposta):
SELECT @@servername
retorna nomedoservidor \ instância, desde que esta não seja a instância padrão
SELECT @@servicename
retorna o nome da instância, mesmo se este for o padrão (MSSQLSERVER)
fonte
Que tal agora:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl', @value_name='MSSQLSERVER'
Isso também obterá o nome da instância.
null
significa instância padrão:SELECT SERVERPROPERTY ('InstanceName')
http://technet.microsoft.com/en-us/library/ms174396.aspx
fonte
SELECT @@servername
lhe dará dados comoserver/instanceName
Para obter apenas o,
instanceName
você deve executar aselect @@ServiceName
consulta.fonte
Por que parar apenas no nome da instância? Você pode inventariar seu ambiente SQL Server com o seguinte:
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
fonte
Eu achei isto:
EXECUTE xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\Microsoft\Microsoft SQL Server', @value_name = 'InstalledInstances'
Isso lhe dará uma lista de todas as instâncias instaladas em seu servidor.
E o exemplo da Microsoft para o servidor atual é:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
fonte
Para obter a lista de servidores e instâncias aos quais você está conectado:
select * from Sys.Servers
Para obter a lista de bancos de dados que o servidor conectado possui:
SELECT * from sys.databases;
fonte
Só para esclarecer as dúvidas do registro. Eles listam apenas as instâncias do número de bits correspondente (32 ou 64) para a instância atual.
A chave de registro real para instâncias SQL de 32 bits em um sistema operacional de 64 bits é:
Você pode consultar isso em uma instância de 64 bits para obter todas as instâncias de 32 bits também. A instância de 32 bits parece restrita ao Wow6432Node, portanto, não pode ler a árvore de registro de 64 bits.
fonte
outro método para encontrar o nome da instância - clique com o botão direito no nome do banco de dados e selecione Propriedades, nesta parte você pode ver as propriedades da conexão no canto esquerdo inferior, clique nisso e então você pode ver o nome da instância.
fonte