How to compare two tables for differences?



How to compare two tables for differences?

Execute the following Microsoft SQL Server 2008 T-SQL scripts in Query Editor to demonstrate the comparison of two tables for differences in rows and/or columns (cells).

------------

-- SQL SERVER COMPARE 2 TABLES FOR ROW & COLUMN DIFFERENCES

------------

-- TEMPLATE - SQL Server T-SQL compare two tables
SELECT Label='Found IN Table1, NOT IN Table2',* FROM
(SELECT * FROM Table1
 EXCEPT
 SELECT  * FROM Table2) x
UNION ALL
SELECT Label='Found IN Table2, NOT IN Table1',* FROM
(SELECT  * FROM Table2
 EXCEPT
 SELECT * FROM Table1) y

GO

------------

-- SQL Server T-SQL compare Product tables for 2005 & 2008
SELECT Label='Found IN AW8PP, NOT IN AWPP',* FROM
(SELECT * FROM AdventureWorks2008.Production.Product
 EXCEPT
 SELECT  * FROM AdventureWorks.Production.Product) x
UNION ALL
SELECT Label='Found IN AWPP, NOT IN AW8PP',* FROM
(SELECT  * FROM AdventureWorks.Production.Product
 EXCEPT
 SELECT * FROM AdventureWorks2008.Production.Product) y
GO

-- The two tables are identical
-- (0 row(s) affected
------------

-- SQL find rows present in both tables
SELECT * FROM AdventureWorks2008.Production.Product
INTERSECT
SELECT * FROM AdventureWorks.Production.Product
-- (504 row(s) affected)
------------

------------
-- ALL SQL Server T-SQL versions
------------
-- SQL finding rows missing in source table based on PRIMARY KEY JOIN to target table
USE tempdb;
SELECT * INTO Product1 FROM Northwind.dbo.Products
SELECT * INTO Product2 FROM Northwind.dbo.Products
DELETE Product2 WHERE UnitPrice > 100.0
-- (2 row(s) affected)
 
SELECT * FROM Product1 p1
WHERE NOT EXISTS (SELECT * FROM Product2  p2
                  WHERE p2.ProductId = p1.ProductId)
GO
/* Partial results
ProductID   ProductName
29    Thüringer Rostbratwurst
38    Côte de Blaye
*/
 
-- Alternate  query - same results
SELECT * FROM Product1  p1
  LEFT OUTER JOIN Product2  p2
    ON p2.ProductId = p1.ProductId
WHERE p2.ProductId IS NULL
GO
-- (2 row(s) affected)
DROP TABLE tempdb.dbo.Product1
DROP TABLE tempdb.dbo.Product2

------------


Regards :
Vikram Singh Rana
Computer Science Engineer
9983384690

Comments

Popular posts from this blog

Generate a Report using Crystal Reports in Visual Studio 2010

SQL Server Database is enabled for Database Mirroring, but the database lacks quorum, and cannot be opened – Error 955

40 Cool Kitchen Gadgets For Food Lovers. I’d Love To Have #14!