233 votes

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

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

214voto

G Mastros Points 12241

Sur une ligne de commande:

 SQLCMD -L
 

ou

 OSQL -L
 

(Note: doit être un L majuscule)

Cela liste tous les serveurs sql installés sur votre réseau. Vous pouvez définir des options de configuration pour empêcher l'affichage d'un serveur SQL dans la liste. Pour faire ça...

Sur la ligne de commande:

 svrnetcn
 

Dans la liste des protocoles activés, sélectionnez 'TCP / IP', puis cliquez sur les propriétés. Il y a une case à cocher pour 'Masquer le serveur'.

83voto

Brian R. Bondy Points 141769

Vous pouvez lancer une requête sur cette valeur de registre pour obtenir la version SQL directement:

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

Sinon, vous pouvez interroger votre nom d'instance, puis utiliser l'utilitaire sqlcmd avec votre nom de l'instance que vous souhaitez:

Pour voir le nom de votre instance:

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

Ensuite, exécutez ceci:

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

Si vous êtes à l'aide de C++, vous pouvez utiliser ce code pour obtenir les informations du registre.

76voto

dotnetengineer Points 584

Toutes les instances installées doivent apparaître dans le composant logiciel enfichable Services dans Microsoft Management Console. Pour obtenir les noms des instances, allez dans Démarrer | Exécuter | Tapez Services.msc et recherchez toutes les entrées avec "Sql Server (nom de l'instance)".

49voto

- 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 
 

11voto

Matt Points 2318

Si vous voulez juste pour voir ce qui est installé sur la machine que vous êtes actuellement connecté, je pense que le plus simple est le processus manuel est simplement d'ouvrir le Gestionnaire de Configuration SQL Server (dans le menu Démarrer), qui affiche tous les Services SQL (et uniquement des services SQL) sur ce matériel (en cours d'exécution ou non). Cela suppose de SQL Server 2005 ou plus; dotnetengineerde la recommandation de l'utilisation de la Console de Gestion des Services va vous montrer tous les services, et devrait toujours être disponible (si vous utilisez des versions antérieures de SQL Server, par exemple).

Si vous êtes à la recherche d'un plus large processus de découverte, cependant, vous pourriez envisager d'outils tiers tels que SQLRecon et SQLPing, qui va scanner votre réseau et de construire un rapport de tous les Services SQL occurrences trouvées sur n'importe quel serveur à laquelle ils ont accès. Il a été un moment depuis que j'ai utilisé des outils comme cela, mais j'ai été surpris de voir à ce qu'ils ont trouvé (à savoir, une poignée de cas que je ne savais pas existé). YMMV. Vous pouvez Google pour plus de détails, mais je pense que cette page de ces téléchargements: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx

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