Question

J'utilise C # avec SMO et je tente de détecter à quelle édition de SQL Server (par exemple, entreprise, standard) je me connecte. Je sais comment obtenir les informations de version, mais cela ne me dit que quelle version de SQL Server (par exemple, SQL Server 2008 par rapport à SQL Server 2005).

Quelqu'un sait-il comment obtenir l'édition réelle du produit (par exemple, entreprise, standard)?

J'ai besoin de ces informations car certaines fonctionnalités de SQL Server ne concernent que l'entreprise. Ainsi, je pourrais simplement essayer de les appeler et attraper l'exception, mais je préférerais de loin une détection immédiate.

Merci!

Était-ce utile?

La solution

Il semble que vous puissiez le faire via SMO et l’objet Serveur. Il existe des propriétés telles que Information.Edition qui semble devoir faire ce que vous voulez.

Autres conseils

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

sur mon système retourne

9.00.1399.06, RTM, Express Edition

Il semble que cette technique ne fonctionne que sur SQL Server 2000 ou une version ultérieure. Si l'une de vos bases de données est 7.0 ou inférieure, vous devrez utiliser @@ Version et manipuler les résultats comme les autres l'ont posté

.

J'ai toujours utilisé @@ Version (par exemple, SELECT @@ Version et manipluté le résultat en code), mais cet article est plutôt pratique; http://support.microsoft.com/kb/321185

Le seul problème lié à l'utilisation de SERVERPROPERTY, selon le lien ..., est que cela ne fonctionnera pas avec l'ancienne version de SQL Server.

select @@version

Retourne la version et quelle édition. Ici:

Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) 
    Nov 24 2008 13:01:59 
    Copyright (c) 1988-2005 Microsoft Corporation
    Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Vérifiez le registre. Cette question comportait une bonne méthode que vous pouvez adapter à partir du script PowerShell:

Comment vérifier le code SQL Version du serveur utilisant Powershell?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top