2011-04-04 4 views

Répondre

4

Obtenez un outil tel que SQL Compare de Red Gate.

Vous aurez besoin de payer pour cela, mais il est rentable de gagner du temps.

Il est disponible à titre d'essai si vous avez un besoin immédiat.

+0

+1 ne peut pas dire assez de bonnes choses sur les outils Red-Gate - ils sont un must have ** ** dans les instructions SQL graves Boîte à outils du développeur du serveur! –

+0

Juste besoin de confirmer, cet outil fonctionnera avec l'installateur? Je veux dire quand j'exécute des objets sql sur la machine cliente en utilisant le programme d'installation à ce moment-là, je veux que sql compare pour vérifier la version existante. –

+0

Si vous voulez ajouter la logique de SQL Compare dans votre propre code, vous aurez besoin de http://www.red-gate.com/products/sql-development/sql-comparison-sdk/ –

2

Je ne vous recommande pas de le faire si vous pouvez l'éviter.

Si vous voulez juste comparer deux bases de données SQL Server, je recommande une alternative à faible coût http://cdttools.com/sql-diff-erence/. (mise en garde: je l'ai écrit). Cependant, pour ce que vous voulez dire, je recommande une approche différente. vous devriez déjà connaître la version différente des différents schémas pour votre produit que vous avez déjà expédiés. Créez donc un script de modification basé sur la mise à niveau complète de chacun d'entre eux vers votre dernière version. De cette façon, l'installateur doit seulement détecter un seul numéro de version et choisir ses actions sql en fonction de cela. Si vous voulez réellement vraiment faire des comparaisons SQL pendant un programme d'installation, yoo pourrait vouloir regarder les objets SMO (Shared Management Objects) qui font partie du pack de fonctions du serveur SQL. Mais vous devrez probablement installer ceux avant de pouvoir les utiliser. Puis vous pouvez les utiliser pour générer les scripts pour chaque objet SQl et faire une comparaison dans votre programme d'installation. Cependant, honnêtement, je ne le recommande pas.

Il vous dira s'ils existent et vous permettra de générer des versions de script "alt" ou "create". Vous pouvez également accéder directement aux objets du système de base de données INFORMATION_SCHEMA qui vous permettront d'interroger directement l'existence des objets.

0

Dans Visual Studio 2012, accédez à SQL (élément de menu) -> Comparaison de schémas. Cliquez sur Sélectionner la source sur la gauche, et sélectionnez la base de données dev. Sélectionnez la base de données de production sur la droite. Puis cliquez sur l'icône de script de génération (à côté de l'icône de mise à jour, elle ressemble plus ou moins à une icône de musique). Cela va générer le script de mise à jour. Vous pouvez également décocher les modifications que vous ne souhaitez pas inclure dans le script. Et il est ... "libre" si vous possédez Visual Studio 2012

4

Vous pouvez comparer des schémas dans SQL Server 2008 et tout nouveau SQL Server avec ApexSQL Diff et il a l'édition de la Communauté libre. Il a une interface utilisateur conviviale, où vous pouvez facilement choisir vos bases de données (ou autres sources de données comme sauvegardes, projets de contrôle de source, dossiers de script) les comparer, obtenir des résultats avec des différences et synchroniser de la source à la base de données.

Si vous souhaitez simplement comparer des objets pour ne voir que les différences et créer un script de fusion, vous pouvez consulter un outil gratuit - ApexSQL Compare.

Un autre outil qui peut faire un travail que vous voulez est dbForge Schema Compare