SQL Server сравнивает две строки таблицы с одинаковыми столбцами и возвращает измененные столбцы
Я хочу сравнить две таблицы с одинаковыми столбцами:
product
-Id, Name, Description
Temp_Product
-Id, Name, Description
Теперь выполненное пользователем обновление будет сохранено в Temp_Product
, Когда администратор увидит детали этого продукта, мне нужно показать изменения, внесенные пользователем. Я хочу сравнить обе таблицы с запросом и вернуть столбцы, которые изменились с Product
в Temp_Product
,
Пожалуйста, предложите мне лучший способ сделать это?
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)
Я хочу сравнить обе таблицы с запросом и вернуть столбцы, которые изменились с Product на Temp_Product
Поскольку две таблицы имеют одинаковую структуру, вы можете использовать EXCEPT
установить oeprator для этого:
SELECT * FROM Temp_Product
EXCEPT
SELECT * FROM Product;