Quels sont les moyens possibles de déterminer la version déployée de SQL Server?
J'ai essayé de le faire en utilisant le logiciel SQL Server. Je veux le faire en utilisant une instruction SQL de ligne de commande.
sql-server-2008
version
Yameen Bashir
la source
la source
Réponses:
Voici des façons possibles de voir la version:
Méthode 1: connectez - vous à l'instance de SQL Server, puis exécutez la requête suivante:
Voici un exemple de la sortie de cette requête:
Méthode 2: connectez - vous au serveur à l'aide de l'Explorateur d'objets dans SQL Server Management Studio. Une fois l'Explorateur d'objets connecté, il affichera les informations de version entre parenthèses, ainsi que le nom d'utilisateur utilisé pour se connecter à l'instance spécifique de SQL Server.
Méthode 3: regardez les premières lignes du fichier Errorlog pour cette instance. Par défaut, le journal des erreurs se trouve dans Program Files \ Microsoft SQL
Server\MSSQL.n\MSSQL\LOG\ERRORLOG
etERRORLOG.n
fichiers. Les entrées peuvent ressembler à ce qui suit:Comme vous pouvez le voir, cette entrée donne toutes les informations nécessaires sur le produit, telles que la version, le niveau du produit, 64 bits contre 32 bits, l'édition de SQL Server et la version du système d'exploitation sur lequel SQL Server s'exécute.
Méthode 4: connectez - vous à l'instance de SQL Server, puis exécutez la requête suivante:
Remarque Cette requête fonctionne avec n'importe quelle instance de SQL Server 2000 ou d'une version ultérieure
la source
Donne 8,00, 9,00, 10,00 et 10,50 pour SQL 2000, 2005, 2008 et 2008R2 respectivement.
Essayez également la procédure étendue du système
xp_msver
. Vous pouvez appeler cette procédure stockée commela source
TL; DR
Cela utilise SQLCMD (livré avec SQL Server) pour se connecter à l'instance de serveur local à l'aide de l'authentification Windows, émettre une erreur si une vérification de version échoue et renvoyer le
@@ERROR
comme ligne de commandeERRORLEVEL
si> = 16 (et la deuxième ligne va à l':ExitFail
étiquette si le mentionné ciERRORLEVEL
- dessus est> = 1).Watchas, Gotchas et plus d'informations
Pour SQL 2000+, vous pouvez utiliser SERVERPROPERTY pour déterminer une grande partie de ces informations.
Alors que SQL 2008+ prend en charge les propriétés
ProductMajorVersion
&ProductMinorVersion
,ProductVersion
il existe depuis 2000 (en se souvenant que si une propriété n'est pas prise en charge, la fonction retourneNULL
).Si vous êtes intéressé par les versions antérieures, vous pouvez utiliser la
PARSENAME
fonction pour diviser leProductVersion
(en vous rappelant que les "parties" sont numérotées de droite à gauche, c'est-à-direPARSENAME('a.b.c', 1)
retoursc
).Rappelez-vous également que
PARSENAME('a.b.c', 4)
renvoieNULL
, car SQL 2005 et les versions antérieures n'utilisaient que 3 parties dans le numéro de version!Donc, pour SQL 2008+, vous pouvez simplement utiliser:
Pour SQL 2000-2005, vous pouvez utiliser:
(
PARSENAME(...,0)
c'est un hack pour améliorer la lisibilité)Donc, une vérification pour une version SQL 2000+ serait:
C'est beaucoup plus simple si vous n'êtes intéressé que par SQL 2008+ car
SERVERPROPERTY('ProductMajorVersion')
renvoieNULL
pour les versions antérieures, vous pouvez donc utiliser:Et vous pouvez utiliser les propriétés
ProductLevel
etEdition
(ouEngineEdition
) pour déterminer respectivement RTM / SP n / CTP n et Dev / Std / Ent / etc.Pour info, les principaux numéros de version SQL sont:
Et tout cela fonctionne aussi pour SQL Azure!
EDITED: Vous pouvez également vérifier le niveau de compatibilité de votre base de données car il pourrait être défini sur une compatibilité inférieure.
la source
Voici ce que j'ai fait pour trouver la version: il suffit d'écrire
SELECT @@version
et cela vous donnera la version.la source
Utilisez simplement
Exemple de sortie
Source: Comment vérifier la version du serveur SQL? (Diverses manières expliquées)
la source
si cette valeur est 0 n'est pas une édition expresse
la source