Comment puis-je obtenir le serveur SQL Server et le nom de l'instance de la connexion actuelle, en utilisant un script T-SQL ?
Réponses
Trop de publicités?Je viens de trouver la réponse, dans cette question SO (littéralement, à l'intérieur de la question, pas de réponse) :
SELECT @@servername
renvoie le nom du serveur \instance pour autant que ce ne soit pas l'instance par défaut
SELECT @@servicename
renvoie le nom de l'instance, même s'il s'agit de la valeur par défaut (MSSQLSERVER)
Pourquoi s'arrêter au seul nom de l'instance ? Vous pouvez inventorier votre environnement SQL Server avec les éléments suivants :
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
J'ai trouvé ça :
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
Cela vous donnera la liste de toutes les instances installées sur votre serveur.
Le site
ServerName
de lSERVERPROPERTY
et@@SERVERNAME
renvoient des informations similaires. Le siteServerName
fournit le nom du serveur et de l'instance Windows qui, ensemble, constituent l'instance unique du serveur.@@SERVERNAME
fournit le nom du serveur local actuellement configuré.
Et l'exemple de Microsoft pour le serveur actuel est :
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
Ce scénario est utile lorsque plusieurs instances de SQL Server sont installées sur un serveur Windows et que le client doit ouvrir une autre connexion à la même instance utilisée par la connexion actuelle.
- Réponses précédentes
- Plus de réponses