• I was given a similar task a few months ago and my solution was along the lines of the suggestion of glen.greaves -

    identify the records with mismatches by using

    select table a

    union all select table b

    except

    select table b

    union all

    select table a

    I had a function which took two fields and the name of the field and returned a value if the fields didn't match

    field by field of the records that didn't match I looked for the field(s) with mismatches

    oh and the first step was to limit the rows in table a and table b to records that matched on key fields