2009-12-30 4 views
0

J'ai une table dans une base de données sur mon développement (poste de travail local) SQL Server 2008 Express auquel j'ai ajouté des enregistrements. Maintenant, je voudrais déployer cette table à la production SQL Server 2000 situé sur un serveur. Quel est le meilleur était d'accomplir cela? Je veux conserver les données de l'instance de développement. Les deux tables ont exactement la même structure. Puis-je utiliser l'Assistant Importation/Exportation DTS à partir de la production SQL Server 2000 via SQL Server Enterprise Manager? Remplace-t-il les tables lors de l'importation? Traitera-t-il les différentes versions de SQL Server?Comment mettre à jour une table à partir d'un serveur SQL différent

+1

Mauvaise idée à développer contre SQL Server 2008 lorsque vous allez à une boîte de prod 2000. Il y a beaucoup de changements de syntaxe dans cette zone. Assurez-vous que la base de données avec laquelle vous travaillez est en mode de compatibilité. – HLGEM

+0

Nous nous attendons à 2008 bientôt (les doigts croisés). Mon contenu est si simple qu'il fonctionne sur les deux. Dois-je cherché SQL Server 2000 Express et l'ai-je installé? Est-ce même disponible? Qu'est-ce qui aurait été une bonne idée? – DaveB

Répondre

2

Votre travail de développement devrait aboutir à des scripts, pas à des bits dans la base de données. There are many advantages in doing so. Lorsque vous déployez, vous exécutez les scripts développés sur la base de données de productions. Maintenant que vous sortez le chat du sac, votre meilleure option est d'exporter la table et de l'importer, voir FAQ: How do I import/export data with SQL Express. L'assistant d'importation/exportation de SQL requiert SSIS (voir Importing and Exporting Data by Using the SQL Server Import and Export Wizard), qui ne fait pas partie des éditions Express.

Si la taille de la table est raisonnable, vous pouvez utiliser une requête distribuée (serveur lié par exemple), mais cela nécessitera MSDTC car il s'agira d'une mise à jour et vous devrez peut-être la configurer.

+1

Il n'est pas difficile de générer le script INSERT approprié à partir des données en direct dans la base de données de développement. – Joe

+0

Merci de me diriger dans la bonne direction. En lisant votre réponse, je me suis rendu compte que je faisais tout faux. Je vais devoir apprendre un peu de T-SQL mais ça en vaudra la peine. – DaveB

3

Une technique consiste à créer un serveur lié. Vérifiez le lien msdn Linked server - msdn

Ensuite, vous pouvez écrire une seule requête pour effectuer la mise à jour ou tout ce qui a accès aux tables sur les deux serveurs.

+0

J'éviterais probablement de créer un serveur lié entre un dev et une boîte de production, au moins une qui aurait n'importe quel type d'accès en écriture. Le déploiement d'un environnement à un autre doit être scripté. – Joe

0

Si vous avez SqlServer Management Studio (pas express). Vous pouvez utiliser les options d'importation et d'exportation pour transférer rapidement les données vers l'intérieur et l'extérieur. Cela suppose que vous pouvez vous connecter à la base de données à partir de votre machine locale.

Questions connexes