Les fichiers de base de données construits à l'aide de SQL 2008 ne sont pas compatibles avec 2005. Existe-t-il une solution de contournement?
32
Les fichiers de base de données construits à l'aide de SQL 2008 ne sont pas compatibles avec 2005. Existe-t-il une solution de contournement?
Réponses:
Aucun outil tiers n'est nécessaire. SQL Server 2008 Management Studio nous a fourni un outil très puissant pour convertir une base de données vers le bas, car une option "Données de script" a été ajoutée à l'assistant "Base de données de script".
Cliquez simplement avec le bouton droit de la souris sur la base de données dans SQL2008 SSMS, puis allez à Tâches, puis "Générer des scripts".
Parcourez l'assistant en vous assurant de choisir "True" pour "Données de script" dans les options de table / vue. Choisissez tous les objets, puis exécutez le script créé sur le serveur 2005. (S'il vous plaît garder à l' esprit que le script créé pourrait être énorme si la base de données d' origine est très grand!)
Notez que vous pouvez même exécuter l'assistant sur un serveur SQL2005 pour convertir une base de données SQL2005 en conversion SQL 2000 (vous auriez besoin des outils 2008 installés sur votre poste de travail).
la source
Vous pouvez BCP les données d'une instance SQL Server vers une autre instance. Ce serait le moyen le plus rapide de copier les données d'une version à une autre. Selon le volume de données, cela peut prendre un certain temps.
la source
À ma connaissance, il n’existe aucun moyen direct de déclasser une base de données de 2008 au format 2005, malheureusement.
Voici comment je l'ai fait par le passé (en fait avec les anciennes versions de SQL Server, mais le processus sera le même):
INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
(ou
INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table
si vous avez lié les instances de cette manière). )pour chaque table. Si vous avez des contraintes et des déclencheurs imposant une cohérence entre les tables, vous devrez bien sûr vous montrer un peu plus astucieux quant au classement de ces opérations, en particulier si vous avez des contraintes cycliques comme une table avec une contrainte basée sur elle-même (une hiérarchie données, comme exemple possible).
Il peut être plus efficace de simplement copier les données d’abord et d’ajouter toutes les autres structures (index, procs, déclencheurs, ...) après l’étape 3. Cette procédure évite les problèmes d’ordre d’insertion de lignes provoqués par des contraintes et des déclencheurs, et la construction des index au niveau de la sauvegarde. En principe, end devrait être plus rapide que de les construire, car toutes les données sont ajoutées. Toutefois, si vous avez des index en cluster sur vos tables, créez-les avant d'ajouter les données, car elles ne seraient pas plus rapides à créer après coup.
Bien entendu, tout cela suppose qu'aucun de vos objets n'utilise les fonctionnalités spécifiques à SQL 2008; sinon, vous découvrirez et corrigerez de telles choses lorsque des erreurs se produiront lors de la reconstruction du schéma. Si l'un de vos codes repose sur un comportement officiellement non défini qui varie d'une version de SQL Server à l'autre, il se peut que vous ayez des bogues beaucoup plus subtils et insaisissables à rechercher et à aplanir ultérieurement.
la source
J'ai été confronté à une situation similaire et j'ai utilisé l'assistant de publication de base de données pour écrire un schéma de schéma et des données pour SQL Server 2005 à partir d'une base de données SQL Server 2008.
Service Web d'hébergement SQL Server (et boîte à outils)
Assistant de publication de base de données
la source
Vous devez d’abord créer un script pour la base de données et vous assurer que vous indiquez sur le type de version que vous voulez utiliser. Et pour copier les données de la version la plus récente vers la version la plus basse, SQL Data compare fera l'affaire pour vous.
Bonne chance!
la source