Oui, je sais. L'existence d'une copie courante de SQL Server 6.5
en 2008 est absurde.
Cela étant précisé, quelle est la meilleure façon de migrer de 6.5
vers 2005
? Existe-t-il un chemin direct ? La plupart de la documentation que j'ai trouvée traite de la mise à niveau de 6.5
vers 6.5
.
Dois-je oublier les utilitaires de mise à niveau natifs SQL Server
, scripter tous les objets et données, et essayer de recréer à partir de zéro ?
J'allais tenter la mise à jour ce week-end, mais des problèmes de serveur l'ont repoussé au prochain. Ainsi, toutes les idées seront les bienvenues au cours de la semaine.
Mettre à jour. Voici comment j'ai fini par le faire :
- Sauvegarder la base de données en question et Master sur
6.5
.
- Exécutez le
instcat.sql
de SQL Server 2000
contre le maître de 6.5
. Cela permet au fournisseur OLEDB de SQL Server 2000
de se connecter à 6.5
.
- Utilisez le
'Import and Export Data'
autonome de SQL Server 2000
pour créer un package DTS, en utilisant OLEDB
pour vous connecter à 6.5. Cela a réussi à copier toutes les tables de 6.5
dans une nouvelle base de données 2005
(utilisant également OLEDB
).
- Utilisez Enterprise Manager de
6.5
pour créer un script de tous les index et déclencheurs de la base de données dans un fichier .sql.
- Exécutez ce fichier .sql avec la nouvelle copie de la base de données, dans Management Studio 2005.
- Utilisez le gestionnaire d'entreprise de la version 6.5 pour créer un script de toutes les procédures stockées.
- Exécutez ce fichier
.sql
avec la base de données 2005
. Plusieurs dizaines de sprocs avaient des problèmes les rendant incompatibles avec 2005
. Principalement non-ANSI joins
et quoted identifier issues
.
- Corrigé tous ces problèmes et réexécuté le fichier
.sql
.
- Recréé les connexions de
6.5
dans 2005
et leur a donné les autorisations appropriées.
Il y a eu un peu de rinçage/répétition lors de la correction des procédures stockées (il y en avait des centaines à corriger), mais la mise à niveau s'est bien passée autrement.
Pouvoir utiliser Management Studio au lieu de Query Analyzer
et Enterprise Manager 6.5
est une différence tellement incroyable. Quelques requêtes de rapport qui prenaient 20 à 30 secondes sur le 6.5 database
s'exécutent désormais en 1 à 2 secondes, sans aucune modification, aucun nouvel index ou quoi que ce soit. Je ne m'attendais pas à ce genre d'amélioration immédiate.