2009-05-11 7 views
0

Je souhaite transférer des objets (tables, procédures stockées, données, etc.) entre deux serveurs (Devbox et Live box) et je me demandais quelle était la meilleure approche pour le faire?Transférer des objets et des données entre les bases de données SQL 2005

Dans SQL Server 2000, vous pouviez transférer tous les objets et toutes les données entre les bases de données. Maintenant tout ce qu'il y a est 'copier des données' et 'écrire une requête'. Où est passée la deuxième option?

Les deux bases de données sont SQL 2005 (avec Service Pack 2). Lors du transfert, les clés primaires et les relations doivent rester intactes, ainsi que toutes les vues et autres données associées en ce qui concerne l'authentification ASP.NET. Integration Services n'est pas installé sur le serveur live, ce n'est donc pas une option. La seule façon que je peux penser est de générer des scripts, puis de les exécuter sur l'autre serveur, mais cela prend plus de temps que l'ancienne (c'est comme ça que je le fais maintenant).

Répondre

0

Database Assistant Publication

http://sqlhost.codeplex.com/

+0

Où puis-je trouver cela? – SamWM

+0

http://www.codeplex.com/Wiki/View.aspx?ProjectName=sqlhost –

0

Il est dommage que vous n'avez pas installé Integration Services que vous pouvez utiliser le « Copier Assistant de base de données ». Je crois que cela crée un package SSIS qui s'exécute sur le serveur de destination.

Si vous utilisez Visual Studio 2008, vous pouvez essayer les outils de comparaison de données et de comparaison de schéma.

+0

Où sont ces deux outils? – SamWM

2

Si vous êtes prêt à payer, je recommande Sql Compare et Sql Data Compare de Red Gate.

Produits très utiles.

0

Vous ne mentionnez pas la portée de votre application ou le nombre de développeurs, etc., il est donc un peu difficile de faire des recommandations. Toutefois, si votre développement se compose de plusieurs projets simultanés et plusieurs développeurs et que vous copiez à partir d'un développement à la production que je recommande quelque chose comme ce qui suit:

  • mettre en œuvre 3 « zones »: dev, qa, production.
  • développer tous les changements de dev, créer tous les changements dans les scripts, utilisez quelque chose comme cvs ou sourcesafe pour suivre les changements sur tous les objets
  • lorsque des changements sont prêts et testés, exécutez vos scripts dans qa, cela validera vos scripts et installer procédure
  • lorsque vous êtes prêt exécuter vos scripts et procédure d'installation sur la production

Note: qa est presque identique à la production, à l'exception des modifications appliquées en attente de leur production finale installer. Vous pouvez périodiquement restaurer une sauvegarde de production sur qa et dev pour les resynchroniser (assurez-vous que tous les développeurs sont conscients de cela et planifiez en conséquence), car (en fonction du nombre de les développeurs) ils (production vs qa vs dev) vont commencer à encourir plus de différences au fil du temps.

Questions connexes