265 votes

Comment puis-je déterminer les instances SQL Server installées et leurs versions ?

J'essaie de déterminer quelles sont les instances de sql server/sql express que j'ai installées (manuellement ou par programme) mais tous les exemples me demandent d'exécuter une requête SQL pour le déterminer, ce qui suppose que je suis déjà connecté à une instance particulière.

2 votes

Voici un lien qui explique comment identifier avec sqlcmd. msdn.microsoft.com/fr/us/library/ms165662%28v=sql.90%29.aspx

0 votes

Comment trouver vos instances (nom de serveur) et versions de SQL Server ? youtube.com/watch?v=DLrxFXXeLFk

0 votes

Pouvez-vous m'indiquer les requêtes SQL dont vous parlez ?

229voto

G Mastros Points 12241

En ligne de commande :

SQLCMD -L

ou

OSQL -L

(Note : doit être un L majuscule)

Cela donnera la liste de tous les serveurs sql installés sur votre réseau. Il existe des options de configuration que vous pouvez définir pour empêcher un serveur SQL d'apparaître dans la liste. Pour ce faire...

En ligne de commande :

svrnetcn

Dans la liste des protocoles activés, sélectionnez "TCP/IP", puis cliquez sur "Propriétés". Il y a une case à cocher pour 'Hide server'.

3 votes

J'aime les options de la ligne de commande, mais j'ai obtenu des résultats mitigés lorsque je les ai essayées sur ma boîte de développement (non connectée au réseau) ; en fait, "sqlcmd -L" était la seule option qui fonctionnait, et seulement si le service de navigation du serveur SQL était en cours d'exécution. Faut-il s'attendre à cela ?

0 votes

J'AIME quand c'est SIMPLE et DROIT. J'avais du mal à trouver le bon nom de serveur à entrer pour une instance de serveur SQL d'Amazon Web Service. Merci

2 votes

Bonnes commandes mais pour une raison quelconque, il a détecté l'instance SQLExpress sur un réseau calculé mais n'a pas réussi à détecter l'instance SQLExpress sur ma machine locale.

85voto

dotnetengineer Points 584

Toutes les instances installées doivent apparaître dans le Snap-In des services de la console de gestion Microsoft. Pour obtenir les noms des instances, allez dans Démarrer | Exécuter | tapez Services.msc et recherchez toutes les entrées avec "Sql Server (Instance Name)".

23 votes

Commande PowerShell équivalente : Get-Service | ?{ $_.Name -like "MSSQL*" }

2 votes

Mon ordinateur indique que MSSQL$SQLEXPRESS est en cours d'exécution avec le nom d'affichage SQL Server (SQLEXPRESS).... mais comment puis-je entrer ceci dans un nom de serveur ? Le test de connexion montre des erreurs telles que ... une erreur liée au réseau ou à l'instance s'est produite lors de la tentative de connexion à sql server.

83voto

Brian R. Bondy Points 141769

Vous pouvez interroger cette valeur de registre pour obtenir directement la version SQL :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup\CurrentVersion

Vous pouvez également demander le nom de votre instance, puis utiliser sqlcmd avec le nom de l'instance que vous souhaitez :

Pour voir le nom de votre instance :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names

Alors exécutez ceci :

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

Si vous utilisez C++, vous pouvez utiliser ce code pour obtenir les informations du registre.

0 votes

('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') montre uniquement le serveur, celui en cours d'exécution mais pas les instances ou les serveurs installés mais arrêtés

0 votes

Merci, la requête a fonctionné pour moi. J'avais une machine et je voulais savoir quelle instance par défaut et quelle instance SQL Express était 2008 et laquelle 2008 R2. Je me suis connecté à chaque instance et j'ai lancé la requête qui m'a donné un numéro de version. La recherche des numéros sur Google a ensuite été facile.

4 votes

Remarque, il semble que le fichier "HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\<version> \Tools\ClientSetup\CurrentVersion "et "HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server \Instance Names" apparaît dans la partie 32 bits du registre, alors que le chemin d'accès réel à l'instance : "HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\<instancename>" apparaît dans le répertoire de stockage 64 bits.

55voto

-- Requête T-SQL pour trouver la liste des Instances installées sur une machine

DECLARE @GetInstances TABLE
( Value nvarchar(100),
 InstanceNames nvarchar(100),
 Data nvarchar(100))

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

Select InstanceNames from @GetInstances

3 votes

+1 La source des informations sur les instances est la même que celle de la réponse de Brian. Quelqu'un pourrait aussi bien écrire du code C# pour obtenir la valeur du registre Windows ; ce qui m'a fait penser que la réponse est redondante pour le moment mais c'est bien de savoir pour xp_regread. #Merci.

0 votes

Les résultats de la requête ne contiennent que les noms des instances. Est-il possible d'ajouter le niveau de compatibilité de chaque instance aux résultats ?

0 votes

Cela ne fera pas la différence entre les instances associées à une version complète et une version express de SQL Server.

11voto

Matt Points 2318

Si vous voulez simplement voir ce qui est installé sur la machine sur laquelle vous êtes actuellement connecté, je pense que le processus manuel le plus simple est d'ouvrir le gestionnaire de configuration du serveur SQL (dans le menu Démarrer), qui affiche tous les services SQL (et les services de l'entreprise). uniquement services SQL) sur ce matériel (en fonctionnement ou non). Cela suppose l'utilisation de SQL Server 2005 ou d'une version plus récente ; ingénieur dotnet La recommandation d'utiliser la console de gestion des services vous montrera tous les services et devrait toujours être disponible (si vous utilisez des versions antérieures de SQL Server, par exemple).

Cependant, si vous recherchez un processus de découverte plus large, vous pouvez envisager des outils tiers tels que SQLRecon et SQLPing, qui analyseront votre réseau et créeront un rapport de toutes les instances SQL Service trouvées sur tout serveur auquel ils ont accès. Cela fait un moment que je n'ai pas utilisé de tels outils, mais j'ai été surpris de ce qu'ils ont trouvé (à savoir, une poignée d'instances dont j'ignorais l'existence). À VOIR. Vous pouvez chercher des détails sur Google, mais je crois que cette page contient les téléchargements pertinents : http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx

1 votes

SQL Server Configuration Manager était exactement ce dont j'avais besoin. C'est simple et rapide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X