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

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

  • productId, Name, Description
  • Temp_ProductId, Name, Description

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

请建议我更好的方法吗?

 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) 

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

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

 SELECT * FROM Temp_Product EXCEPT SELECT * FROM Product; 

SQL小提琴演示