Compare Two Sql Databases
Compare and synchronize images between two SQL Server databases Concept and basics of Temporal tables in SQL Server 2016 How to migrate MySQL tables to SQL Server using the SQL Server Migration Assistant (SSMA) and SSIS.
-->You can compare the data that is contained in two databases. The databases that you compare are known as the source and the target.
Note
Database projects and .dacpac or .bacpac packages cannot be the source or target in a data comparison.
As the data is compared, a Data Manipulation Language (DML) script is generated, which you can use to synchronize the differing databases by updating some or all of the data on the target database. When the data comparison finishes, its results appear in the Data Compare window of Visual Studio.
After the comparison finishes, you can take other steps:
You can view the differences between the two databases. For more information, see Viewing Data Differences.
You can update all or part of the target to match the source. For more information, see Synchronizing Database Data.
For more information, see Compare and Synchronize Data in One or More Tables with Data in a Reference Database.
Note
You can also compare the schema of two databases or of two versions of the same database. For more information, see How to: Use Schema Compare to Compare Different Database Definitions.
Comparing Database Data
To compare data by using the New Data Comparison Wizard
On the SQL menu, point to Data Compare, and then click New Data Comparison.
The New Data Comparison wizard appears. Also, the Data Compare window opens, and Visual Studio automatically assigns it a name such as DataCompare1.
Identify the source and target databases.
If the Source Database list or the Target Database list is empty, click New Connection. In the Connection Properties dialog box, identify the server on which the database resides and the type of authentication to use when connecting to the database. Then, click OK to close the Connection Properties dialog box and return to the Data Compare wizard.
On the first page of the Data Compare wizard, verify that the information for each database is correct, specify which records you want to include in the results, and then click Next. The second page of the Data Compare wizard appears and shows a hierarchical listing of the tables and views in the database.
Select the check boxes for the tables and views that you want to compare. Optionally, expand the nodes for database objects, and then select the check boxes for columns within those objects that you want to compare.
Note
Tables and views must meet two criteria to appear in the listing. First, the schemas of the objects must match between the source and target databases. Second, only tables and views that have a primary key, a unique key, a unique index, or a unique constraint appear in the list. If no tables or views meet both criteria, the list will be empty.
If more than one key is present, you can use the Comparison Key column to specify the key on which to base the data comparison. For example, you can specify whether to base the comparison on the primary key column or on another (uniquely identifiable) key column.
Click Finish.
The comparison starts.
Note
You can stop a data comparison operation that is in progress by opening the SQL menu, clicking Data Compare, and then clicking Stop Data Comparison.
When the comparison is finished, you can view the data differences between the two databases. You can also update part or all the data in the target database to match the data in the source database.
To compare data by using the Visual Studio automation model
Open the View menu, point to Other Windows, and click Command Window.
In the Command Window, type the following command:
Replace the placeholders (sServerName, sDatabaseName, sUserName, sPassword, sDisplayName, tServerName, tDatabaseName, tUserName, tPassword, and tDisplayName) with the values for your source and target databases.
If you do not specify a source and a target, the New Data Comparison dialog box appears. For more information about the parameters for the Sql.NewDataComparison command, see Automation Command Reference for Database Features of Visual Studio Team System.
Microsoft word 2010 free download. Microsoft Excel is handy tool for making reports in excel, you can also show your report in graphical format using excel 2003.
The data in the specified source and target databases are compared. The results appear in a Data Compare session. For more information about how to view results or synchronize the data, see Viewing Data Differences and Synchronizing Database Data.
Viewing Data Differences
After you compare the data in two databases, Data Compare lists each database object that you compared and its status. You can also view results for the records within each object, grouped by status. For more information about the status designations, see Compare and Synchronize Data in One or More Tables with Data in a Reference Database.
After you view the differences, you can update the target to match the source for some or all of the objects or records that are different, missing, or new. For more information, see Synchronizing Database Data.
To view data differences
Compare the data in a source and a target database. For more information, see Compare Database Data.
(Optional) Do one or both of the following:
By default, the results for all objects appear, regardless of their status. To display only those objects that have a particular status, click an option in the Filter list.
To view results for records within a particular object, click the object in the main results pane, and then click a tab in the records view pane. Each tab displays all records within that object that have a particular status: different, only in source, only in target, and identical. Data appears by record and column.
Synchronizing Database Data
After you compare the data in two databases, you can synchronize them by updating all or part of the target to match the source. You can compare the data in two kinds of database objects: tables and views.
To update target data by using the Write Updates command
Compare the data in a source and a target database. For more information, see Compare Database Data.
After the comparison finishes, the Data Compare window lists results for the objects that were compared. Four columns (named Different Records, Only in Source, Only in Target, and Identical Records) display information about objects that were not identical. For each such object, these columns display how many records were found to be different, and how many records an update operation would change. Those two numbers match at first, but in step 4 you can change which objects to update.
For more information, see Compare and Synchronize Data in One or More Tables with Data in a Reference Database.
In the table of the Data Compare window, click a row.
The details pane shows results for the records in the database object that you clicked. Records are grouped by status onto tabs, which you can use to specify the data that will be propagated from the source to the target.
In the details pane, click a tab whose name contains a number other than zero (0).
The Update column of the Only in Target table contains check boxes that you can use to select rows to be updated. By default, each check box is selected.
Clear check boxes for records in the target that you do not want to update with data from the source.
When you clear a check box, you reduce the number of records to update, and the display changes to reflect your actions. This number appears in the status line of the details pane and in the corresponding column in the main results pane, as described in step 1.
(Optional) Click Generate Script.
A Transact-SQL editor window opens and shows the Data Manipulation Language (DML) script that would be used to update the target.
To synchronize records that are different, missing, or new, click Update Target.
Note
While the target database is being updated, you can cancel the operation by clicking Stop Writing to Target.
The data of the selected records in the target is updated with the data from the corresponding records in the source.
Note
If you opt to update indexed views, the Update Target operation might fail if this action causes duplicate keys to be inserted into the same table.
To update target data by using a Transact-SQL script
Compare the data in a source and a target database. For more information, see Compare Database Data.
After the comparison finishes, the Data Compare window lists the objects that were compared. For more information, see Compare and Synchronize Data in One or More Tables with Data in a Reference Database.
(Optional) In the details pane, clear the check boxes for records in the target that you do not want to update, as described in the previous procedure.
Click Generate Script.
A new window shows the Transact-SQL script that would propagate the changes necessary to make the data in the target match the data in the source. The new window is given a name such as DataUpdate_Database_1.sql.
This script reflects changes that you have made in the details pane. For example, you might have cleared a check box for a given row in the Only in Target page for the [dbo].[Shippers] table. In that case, the script would not update that row.
(Optional) Edit this script in the DataUpdate_Database_1.sql window.
(Optional but recommended) Back up the target database.
Click Execute to update the target database.
Specify a connection to the target database that you want to update.
Important
By default, the updates occur within the scope of a transaction. If errors occur, you can roll back the whole update. You can change this behavior.
The data of the selected records in the target is updated with the data from the corresponding records in the source.
See Also
What is a free tool to compare two Sql Server tables (data and schema).
It would be great if the tool can script the differences found.
I also went through some older posts. The closest I have seen is SQLDBDiff but I would love to try more options.
closed as not constructive by KevFeb 25 '13 at 21:01
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.
7 Answers
TableDiff.exe should have everything you need. It is one of the hidden gems in SQL Server 2005. So you don't have to download anything.
• Table Difference tool allows you to discover and reconcile differences between a source and destination table or a view. Tablediff Utility can report differences on schema and data. The most popular feature of tablediff is the fact that it can generate a script that you can run on the destination that will reconcile differences between the tables. TableDiff.exe takes 2 sets of input;• Connectivity - Provide source and destination objects and connectivity information.
• Compare Options - Select one of the compare options• Compare schemas: Regular or Strict
• Compare using Rowcounts, Hashes or Column comparisons
• Generate difference scripts with I/U/D statements to synchronize destination to the source. TableDiff was intended for replication but can easily apply to any scenario where you need to compare data and schema.You can find more information about command line utilities and the Tablediff Utility in Books Online for SQL Server 2005.
Even though this has been answered years ago a new comer which works really well is Data Compare within Visual Studio. It is part of Visual Studio 2010 and is part of the Database Professionals GDR update to Visual Studio 2008. This works great when you want to compare the same tables in 2 different databases.
If you need to compare 2 tables with the same schema that are in the same database or with different names TableDiff (mentioned earlier) is a great option.
DBComparer is free and works well for MS SQL Server
We can recommend you a our reliable solutions for data and schema comparison for SQL Server: dbForge Schema Compare for SQL Server and dbForge Data Compare for SQL Server.
Their main advantages are high speed (up to 3 times quicker than most competitors) and extreme reliability.
Those tools are not free, but you can use 30-days trial for free and you have an opportunity to get a free license for both of the products - please refer to our free license conditions page.
Atlantis Interactiv, now owned by Pragmatic Works has two freeFree adobe photoshop filter download. tools called Schema Inspector and Data Inspector that works very much like the Red Gates tools.
Try CompareData from Zidsoft. It's free for comparing table/view data and has 30-trial for metadata comparisons
A SQL Server specific database table diff tool is Volpet's Table Diff