Comment obtenir le nom d'instance courant à partir de T-SQL

Comment puis-je obtenir le nom du serveur SQL et de l'instance de la connexion actuelle, en utilisant un script T-SQL?

61
demandé sur abatishchev 2013-08-06 04:57:20

6 réponses

je Viens de trouver la réponse, dans cela DONC, la question (littéralement, à l'intérieur de la question, pas de réponse):

SELECT @@servername

retourne servername \ instance dans la mesure où ce n'est pas l'instance par défaut

SELECT @@servicename

renvoie le nom de l'instance, même si c'est le nom par défaut (MSSQLSERVER)

121
répondu Guillermo Gutiérrez 2017-05-23 12:18:12

Que pensez-vous de ceci:

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

Cela donnera aussi le nom de l'instance. null signifie instance par défaut:

SELECT SERVERPROPERTY ('InstanceName')

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

14
répondu Beno 2013-08-06 01:03:45

SELECT @@servername vous donnera des données comme server/instanceName

pour obtenir seulement le instanceName vous devez lancer select @@ServiceName requête .

8
répondu Shirishkumar Bari 2015-05-19 04:18:45

j'ai trouvé ceci:

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

qui vous donnera la liste de toutes les instances installées sur votre serveur.


la ServerName propriété de la SERVERPROPERTY fonction et @@SERVERNAME retourner des informations similaires. La propriété ServerName fournit le nom du serveur Windows et de l'instance qui forment ensemble l'instance unique du serveur. @@SERVERNAME fournit le serveur local actuellement configuré nom.

et Microsoft exemple pour le serveur courant est:

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

ce scénario est utile lorsqu'il y a plusieurs instances de SQL Server installées sur un serveur Windows, et que le client doit ouvrir une autre connexion à la même instance utilisée par la connexion courante.

8
répondu shA.t 2015-06-07 04:39:59

pourquoi s'arrêter au nom de l'instance? Vous pouvez faire l'inventaire de votre environnement SQL Server avec:

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
5
répondu Nate S. 2017-05-25 21:22:49

une autre méthode pour trouver le nom de L'Instance-clck droit sur le nom de la base de données et sélectionner les propriétés, dans cette partie vous pouvez voir les propriétés de connexion dans le coin inférieur gauche, cliquez sur que vous pouvez voir le nom de l'Instance.

0
répondu Yasin 2018-07-05 09:19:07