Retrouvez la version d'origine
Par Arian Papillon le jeudi 18 avril 2024, 23:23 - Lien permanent
Savez-vous que les fichiers de données ou de sauvegarde de SQL Server embarquent l'information sur la version d'origine qui a servi à les créer ?
Dans pas mal de cas, il peut être utile de savoir de quelle version provient un fichier de données ou de sauvegarde, voire connaître pour une base de données existante dans quelle version elle a été créée au départ.
Voici comment obtenir cette information...
Un numéro de version interne est enregistré dans le fichier (mdf ou bak), voici la liste :
Appellation commerciale | N° version | N° interne |
2000 | 80 / 8.0 | 539 |
2005 | 90 / 9.0 | 611,612 |
2008 | 100 / 10.0 | 655 |
2008R2 | 100 / 10.5 | 661 |
2012 | 110 / 11.0 | 706 |
2014 | 120 / 12.0 | 782 |
2016 | 130 / 13.0 | 852 |
2017 | 140 / 14.0 | 869 |
2019 | 150 / 15.0 | 904 |
2022 | 160 / 16.0 | 957 |
Voici maintenant le moyen d'extraire l'information, reportez-vous au tableau pour trouver la version correspondante...
Depuis une sauvegarde
Pour obtenir l'information depuis un fichier de sauvegarde .BAK, lancez la commande TSQL suivante et relevez la valeur dans la colonne DatabaseVersion :
RESTORE HEADERONLY FROM DISK = 'x:\path\file.bak' -- remplacez par votre fichier bak
A partir d'un fichier de données
Si vous ne voulez pas attacher la base de données (et potentiellement la migrer vers une version ultérieure), il faut aller chercher l'information en hexadécimal dans le fichier.
Heureusement il y a plus simple, avec la procédure stockée spDBVersion que vous trouverez ici. Elle n'est pas de moi et provient d'un forum msdn.
Dans une base en ligne
Pour obtenir l'information de la version de création depuis une base de données existante et en ligne, utilisez la commande suivante et relevez la valeur dans la ligne dbi_createversion :
DBCC DBINFO(nom_de_la_base) WITH TABLERESULTS
Bonne exploration archéologique dans les versions de SQL Server... Comme cela m'arrive souvent, vous constaterez peut-être que les bases de données de certains progiciels dits "modernes" ont été créées à l'origine sous SQL Server 2000 il y a 20 ans...