比较两个相同的表,将更新的行从表1移动到表2而不删除表2?

时间:2014-03-12 15:12:07

标签: sql sql-server database

我有两张相同的表格'表1'和'表2','表2'有一个附加栏'状态'。

我在表1和表2中都有3个类似的记录。对于表2中的所有三个记录,状态设置为' 1'。

我更新了表1中的一条记录。我希望将更新的记录作为表2中的新记录移至表2,状态为' 1'并将表2中的上一条记录设置为' 0'。

如何比较两张表的修改记录?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您可以使用RED GATE DATA COMPARE提供的工具,或者只是使用以下语法进行查询:

SELECT MIN(TableName) as TableName, ID, COL1, COL2, COL3 
    FROM (
        SELECT [Table A] as TableName, A.ID, A.COL1, A.COL2, A.COL3
        FROM A
        UNION ALL
        SELECT [Table B] as TableName, B.ID, B.COL1, B.COl2, B.COL3
        FROM B
    ) tmp
    GROUP BY ID, COL1, COL2, COL3 
    HAVING COUNT(*) = 1
    ORDER BY ID