SQL Server比较具有相同列的两个表行并返回更改的列

时间:2012-11-17 08:35:56

标签: c# sql sql-server c#-4.0

我想比较两个具有相同列的表:

  • product - Id, Name, Description
  • Temp_Product - Id, Name, Description

现在,用户完成的更新将保存到Temp_Product。当管理员看到该产品的详细信息时,我需要显示用户完成的更改。我想将两个表与查询进行比较,并返回从Product更改为Temp_Product的列。

请建议我更好的方法吗?

2 个答案:

答案 0 :(得分:2)

Select p.id,p.name as orgn,t.name as altn,p.descripion as orgd,t.description as altd
from product p
join tmp_product t
on t.id=p.id and (t.name<>p.name or t.description <> p.description)

答案 1 :(得分:1)

  

我想将两个表与查询进行比较并返回列   已从Product更改为Temp_Product

由于这两个表具有相同的结构,因此您可以使用EXCEPT set oeprator:

SELECT * FROM Temp_Product
EXCEPT
SELECT * FROM Product;

SQL Fiddle Demo