2010-08-25 10 views
2

Je travaille sur SQL Server 2005. J'ai pris la sauvegarde et restauré la base de données. Je voulais juste savoir s'il existe un moyen de vérifier si les données entre ces deux bases de données sont différentes. ou tout script que je peux exécuter ou vérifier [pourrait être table par table] pour voir si une nouvelle ligne a été ajoutée ou modifiée.Différence de données entre deux bases de données

ÉDITÉ

Par exemple - je dois vérifier la différence de données de base de données 1 Table_User à la base de données 2 Table_User.

Merci

+0

Les bases de données sont-elles grandes en termes de nombre de tables et de lignes? – spbfox

+0

seulement 2-3 tables sont grandes, environ 10 mille lignes – Zerotoinfinity

Répondre

0

Vous pouvez utiliser l'outil intégré dans la ligne de commande TableDiff.exe:

http://msdn.microsoft.com/en-us/library/ms162843(SQL.90).aspx

Il effectue des comparaisons de ligne par ligne ainsi que des comparaisons au niveau des colonnes. Voici un article qui se promène dans la façon de l'utiliser:

http://www.databasejournal.com/features/mssql/article.php/3594926/SQL-Server-2005-TableDiff-Utility.htm

Et un autre (avec un lien vers une interface graphique que vous pouvez télécharger):

http://weblogs.sqlteam.com/mladenp/archive/2007/03/03/60125.aspx

Ce serait sur une table par la base de la table - mais c'est gratuit et déjà installé pour vous depuis que vous avez installé SQL Server 2005. J'espère que cela t'aides!

+0

Dois-je ouvrir l'invite de commande Microsoft .NET Framework v2.0 SDK ???? Ou Exécuter> cmd – Zerotoinfinity

+1

Doit être installé ici: 'C: \ Program Files \ Microsoft SQL Server \ 90 \ COM \ TableDiff.exe' (peut varier en fonction de la façon dont vous avez installé le serveur SQL). Juste un run de base> cmd devrait le faire, je crois. Cela fait partie de la partie outils clients de l'installation. –

0

vous pouvez utiliser sql comparer et données sql comparer. (Red-gate.com) ou vous pouvez utiliser delta sql. (Sqldelta.com)

0

Je pense que vous voulez suivre ce sont des changements dans votre restaurés base de données comparant à cela avant qu'il ne soit restauré. Si c'est le cas, j'espère que cela pourra être utile.

ALTER DATABASE yourdatabasename SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON); 
GO 
USE yourdatabasename; 
GO 
ALTER TABLE Person.Person ENABLE CHANGE_TRACKING 
WITH (TRACK_COLUMNS_UPDATED = ON); 
GO 
+0

quelle sera la sortie de ce ?? Je veux dire, j'ai peur que ça ne mettra pas à jour n'importe lequel de la base de données .. Est-ce que ça va mettre à jour ma base de données ??? – Zerotoinfinity

+0

Non, ce ne sera pas le cas. Il suffit de suivre ce qui a été changé entre deux bases de données – daydream

+0

J'ai utilisé ce ALTER BASE DE DONNEES StudentOld SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 20 DAYS, AUTO_CLEANUP = ON); GO USE étudiantNouveau; GO ALTER TABLE T_Membre ACTIVER CHANGE_TRACKING AVEC (TRACK_COLUMNS_UPDATED = ON); GO Je reçois l'erreur ci-dessous Une erreur de script fatale s'est produite. Une syntaxe incorrecte a été rencontrée lors de l'analyse de GO. – Zerotoinfinity

Questions connexes