ver usuarios usuario saber obtener name conectados como actual sql sql-server tsql sql-server-2008r2-express

usuarios - Cómo obtener el nombre de instancia actual de T-SQL



server name sql server 2017 (6)

¿Cómo puedo obtener el servidor SQL Server y el nombre de la instancia de la conexión actual, usando un script T-SQL?


¿Por qué detenerse solo en el nombre de la instancia? Puede inventariar su entorno SQL Server con lo siguiente:

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


Acabo de encontrar la respuesta, en esta pregunta SO (literalmente, dentro de la pregunta, no cualquier respuesta):

SELECT @@servername

devuelve servername / instance siempre que esta no sea la instancia predeterminada

SELECT @@servicename

devuelve el nombre de la instancia, incluso si este es el predeterminado (MSSQLSERVER)


Encontré esto:

EXECUTE xp_regread @rootkey = ''HKEY_LOCAL_MACHINE'', @key = ''SOFTWARE/Microsoft/Microsoft SQL Server'', @value_name = ''InstalledInstances''

Eso le dará una lista de todas las instancias instaladas en su servidor.

La propiedad ServerName de la función SERVERPROPERTY y @@SERVERNAME devuelven información similar. La propiedad ServerName proporciona el servidor de Windows y el nombre de la instancia que conforman la instancia de servidor única. @@SERVERNAME proporciona el nombre del servidor local actualmente configurado.

Y el ejemplo de Microsoft para el servidor actual es:

SELECT CONVERT(sysname, SERVERPROPERTY(''servername''));

Este escenario es útil cuando hay varias instancias de SQL Server instaladas en un servidor de Windows, y el cliente debe abrir otra conexión a la misma instancia utilizada por la conexión actual.


Qué tal esto:

EXECUTE xp_regread @rootkey=''HKEY_LOCAL_MACHINE'', @key=''SOFTWARE/Microsoft/Microsoft SQL Server/Instance Names/SQl'', @value_name=''MSSQLSERVER''

Esto también obtendrá el nombre de la instancia. null significa instancia predeterminada:

SELECT SERVERPROPERTY (''InstanceName'')

http://technet.microsoft.com/en-us/library/ms174396.aspx


otro método para encontrar el nombre de la instancia: haga clic en el nombre de la base de datos y seleccione Propiedades, en esta parte puede ver las propiedades de conexión de la vista en la esquina inferior izquierda, haga clic para ver el nombre de la instancia.


SELECT @@servername le dará datos como server/instanceName

Para obtener solo instanceName , debe ejecutar select @@ServiceName query.