J'ai Les deux tables ont exactement le même schéma. P> Aux fins de la question, considérez J'ai besoin de créer un script SQL (contenant Tous les outils gratuits qui peuvent le faire, ou mieux encore une façon de le faire moi-même? P> Je pense Je dois probablement faire un certain type de jointure sur tous les champs des tables, puis générer une SQL dynamique basée sur cela. P> Quelqu'un a des idées? P> Edit P> D'accord, pensais que je clarifierais un peu cette question. P> Le tableau que j'ai besoin de synchroniser est une table simple. Les données sont très simples et simples. P> Voici une idée de ce que Tableau A code> et
Tableau B code>. (SQL Server 2008)
Tableau A code> = mon tableau de devir local,
b code> = la table en direct. P>
Mettre à jour / insérer / insérer / insert> instructions) qui mettront à jour le tableau B pour être le même que Tableau A. Ce script sera ensuite déployé dans la base de données en direct. P>
Tableau A code> pourrait ressembler à: p>
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
12 Réponses :
Il y a Comparaison de données SQL de Redgate (bien que non libre "Et il y a aussi SMO et le intégré Fonctionnalité. P>
Enfin Wikipedia a une liste complète de logiciels. P>
L'outil RedGate SQL Data Data Compare n'est pas gratuit. SMO est une bonne idée et le lien Wikipedia est une excellente source.
Désolé, Bernard, j'ai mal interprété une partie de la question et l'interprétait en quelque sorte comme si libre était préférable, bien que facultatif, j'ai modifié la réponse pour refléter cela. Besoin de plus de café je suppose.
Le lien Wikipedia maintenant, ennuyeux. Il suffit de rediriger vers la page SQL Server principale.
Vous pouvez utiliser un générateur de script de données qui crée un script pour les insertions, puis utilisez des outils de comparaison de fichiers tels que Winmerge pour comparer les fichiers pour trouver les différences. Il y a un article sur la génération des scripts de données sur le projet de code: http: //www.codeproject. COM / KB / Base de données / SQLINSERTUPDATEGENERATOR.ASPX P>
Si vous voulez simplement synchroniser les tables et ne vous souciez pas de passer en revue les modifications à l'avance, le Fusionner la commande peut faire cela. P>
MSDN - Fusionner (transact-sql) p>
Le (gratuit) Microsoft SSDT dispose également de la comparaison de données et de la synchronisation intégrée, bien qu'elle soit plus limitée que celle des outils payants, tels que Redgate Data Comparer. P>
Vous pouvez également essayer d'utiliser les données Importer et exporter des données CODE> fournies par SQL Server 2008. C'est un moyen assez simple de copier toutes les données de n'importe où sur n'importe où dans n'importe où. Je fais la même chose et travaille parfaitement. p>
Dans des cas très simples, vous pourrez définir dans votre serveur SQL local un nouveau serveur lié (voir dans Microsoft SQL Server Management Studio sous "Serveur Objets" / "Server Linked") et utilisez Dans une situation réelle et plus complexe, vous devez prendre en compte une intégrité référentielle, différentes claviers étrangères et des champs d'identité (auto-incrémentaux) existant dans la base de données de destination, de sorte que le script de mise à jour sera plus complexe. Je vous recommanderai donc que vous ne passez pas votre temps à créer une synchronisation de votre développeur et de votre DB de votre développeur et d'utiliser un outil standard. J'utilise par exemple les fonctionnalités de Visual Studio Equipe Edition 2008 (ou Edition de base de données) ou de Visual Studio 2010 Edition ultime pour comparer les données dans deux bases de données. Cela fonctionne très bien. P> Join interne code> et
jointure extérieure code> pour connaître les différences entre les tables A et B. P>
IVE GOT VS2010 - Comment comparez-vous les données dans deux bases de données avec cela? Avez-vous une référence / lien?
Il suffit d'aller dans le menu "Data" Choisissez "Comparer des données" et "Nouvelle comparaison de données". Choisissez ensuite des bases de données de source et de destination et des "options de comparaison des données". Suivez ensuite l'assistant. À la fin, vous pouvez examiner la comparaison des résultats, «Destellect» certaines différences et écrivit les résolutions directement dans la base de données de destination ou générer un script SQL. Dans le menu "Outil" "Options", vous pouvez choisir certaines options de génération de code. Vous pouvez non seulement comparer les données, mais également comparer le schéma des bases de données si nécessaire.
Cool - ok malade donner ça va demain (quand je suis de retour au travail) et que tu saches comment je vais - acclamer pour la pointe!
Vous pouvez en savoir plus sur la comparaison et la synchronisation des données dans Visual Studio 2010 sous msdn.microsoft. com / fr-nous / bibliothèque / dd193261.aspx . Au fait, si nécessaire, vous pouvez automatiser les données comparatives via DTE (voir
Comme il en est un éteint, vous pouvez utiliser cette requête pour trouver des lignes différentes dans ces deux tables: Vous pouvez maintenant insérer ces enregistrements dans une table temporelle, puis effectuer des insertions / mises à jour. P> Selon vos besoins, vous pouvez limiter la liste de champs de comparaison. P> Notez que vous avez besoin de la clé primaire pour que cela fonctionne. P> EDIT: strong> Vous pouvez utiliser edit 2: strong> p> re SCHERAND's Commentaire: moins code> comparera le champ des enregistrements par champ , alors il va jeter les registres de la première table pour laquelle il y a un enregistrement identique dans la deuxième table. Cela fonctionne comme ceci: p>
moins code> Obtient tous les enregistrements de
Table_a code> qui ne sont pas dans
TABLE_B CODE> LI>
moins code> obtient tous les enregistrements de
table_b code> qui ne sont pas dans
table_a code> li>
Ooops. SQL Server ne prend pas en charge l'opérateur moins code>. Je travaille avec Oracle l'année dernière et la moitié, donc c'était automatique. P>
sauf code> opérateur. Voir cet article: sauf et intersect ( Transact-sql) strong> p>
S'il ne peut vraiment pas se connecter à partir de la machine locale à Live Server, il peut simplement vider table_a code> et le charger sur le serveur. Un moyen ou l'autre, l'objectif est de changer de données de table sur Live Server. P> p>
Intéressant ... jamais entendu parler du mot clé moins. Je vais donner cela aussi (et oui - la première colonne est une identité pk - identité).
Cela ne fonctionne pas, à moins que OP ne puisse définir son poste de travail / serveur en direct en tant que serveur lié (comme @Oleg pointé sorti) ... CITE: "Gardez à l'esprit: Tableau A est sur ma table de machine locale B est sur le serveur Live Server "
Vous pouvez essayer notre Schema Comparer pour SQL Server P>
Cet outil n'est pas gratuit (c'est Shareware), mais vous pouvez utiliser un essai de 30 jours gratuitement et vous avez la possibilité d'obtenir une licence gratuite pour ce produit - veuillez vous reporter à notre Conditions de licence gratuite Page . P>
Tablediff fonctionnerait - c'est gratuit et livré avec SQL Server http://msdn.microsoft.com/en-us/library/ms162843.cox p>
J'ai couru dans le même problème que vous avez recherché un outil gratuit qui compare les données de deux tables MS SQL - et rien trouvé. Ensuite, j'ai créé une simple utilitaire de ligne de commandement gratuit. Il compare les données de deux tables et crée des Insérer / Supprimer / mettre la mise à jour code> StateMenets pour rendre les données de la table de destination identique à la source. Maintenant, je l'utilise pour la comparaison des données, et comme il est totalement gratuit, vous pouvez recommander de vérifier à: Sourceforge. NET - ULTRADBC P>
Que se passe-t-il si vous:
? p>
ou si vous devez être plus respectueux des valeurs de PRODTABLB existantes et de vos valeurs de colonne d'identité dans laquelle Dev et Prod Correspondant (même si les valeurs ne sont pas continues) ... p>
réponse tardive mais peut être utile aux visiteurs de fil p>
Outre d'autres solutions mentionnées, je peux suggérer d'essayer des données Apexsql Diff. Il peut comparer et synchroniser des données de base de données SQL Server (dans des bases de données en direct ainsi que des sauvegardes) et automatiser et planifier des migrations de données. Il fonctionne également avec d'énormes bases de données et est capable de faire des comparaisons directement à partir de SSMS. P>
Vous pouvez télécharger cet outil gratuitement et jouer avec elle. Il propose un essai gratuit entièrement fonctionnel et offre une édition communautaire (après la période d'essai terminée) qui fonctionne sur la base de données SQL Express et Azure SQL. P>
Pour en savoir plus sur l'outil, vous pouvez visiter http://www.apexsql.com/sql_tools_datadiff. ASPX P>
Vous pouvez également consulter Données XSQL Comparaison a >. La version SQL Express est gratuite et il existe également une version Lite qui fera l'affaire pour les petites bases de données. p>
Un bon outil gratuit est également des données comparatives à partir de SSDT . < / p>
Disclaimer: Je suis affilié à XSQL. P>
Toute réponse dépendra beaucoup du fait que si vous avez un champ qui peut être utilisé de manière fiable pour correspondre à deux rangées.
La réponse dépend également de la fréquence à laquelle vous devez le faire et de la taille des données? S'il s'agit d'une chose une fois que vous pouvez simplement utiliser l'assistant d'importation / exportation pour transférer
tableau B code> sur
Tableau A code>. Si vous souhaitez que les modifications soient reflétées immédiatement et que vous puissiez implémenter une réplication.