Comment puis-je obtenir le serveur SQL Server et le nom de l'instance de la connexion actuelle à l'aide d'un script T-SQL?
sql
sql-server
tsql
sql-server-2008r2-express
Guillermo Gutiérrez
la source
la source
SELECT @@SERVERNAME
produit le résultat nécessaire pour se connecter en utilisantsqlcmd -S
. S'il s'agit de l'instance MSSQLSERVER par défaut, elle ne doit pas être spécifiée dans le paramètre -S. Ceci est sur 2017 14.0.2002.14 Developer Edition, 64 bits.Réponses:
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 nom_serveur \ instance dans la mesure où ce n'est 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)
la source
Que dis-tu de ça:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl', @value_name='MSSQLSERVER'
Cela obtiendra également le nom de l'instance.
null
signifie instance par défaut:SELECT SERVERPROPERTY ('InstanceName')
http://technet.microsoft.com/en-us/library/ms174396.aspx
la source
SELECT @@servername
vous donnera des données commeserver/instanceName
Pour obtenir uniquement le,
instanceName
vous devez exécuter laselect @@ServiceName
requête.la source
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.
Et l'exemple de Microsoft pour le serveur actuel est:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
la source
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
la source
Pour obtenir la liste des serveurs et des instances auxquels vous êtes connecté:
select * from Sys.Servers
Pour obtenir la liste des bases de données dont dispose le serveur connecté:
SELECT * from sys.databases;
la source
Juste pour ajouter quelques éclaircissements aux requêtes du registre. Ils répertorient uniquement les instances du bitness correspondant (32 ou 64) pour l'instance actuelle.
La clé de registre réelle pour les instances SQL 32 bits sur un système d'exploitation 64 bits est:
Vous pouvez l'interroger sur une instance 64 bits pour obtenir également toutes les instances 32 bits. L'instance 32 bits semble limitée au Wow6432Node et ne peut donc pas lire l'arborescence du registre 64 bits.
la source
une autre méthode pour trouver le nom de l'instance - Cliquez avec le bouton droit sur le nom de la base de données et sélectionnez Propriétés, dans cette partie, vous pouvez voir les propriétés de connexion dans le coin gauche en bas, cliquez dessus, puis vous pouvez voir le nom de l'instance.
la source