binary_checksum can in some case give same checksum, see bol.
This will give records that are
1. different
2. in table a but not in table b, and vice versa
select
a.[order id],
a.col1, a.col2,,,,
b.[order id],
b.col1, b.col2,,,,
from
( select *, binary_checksum(*) as bchk from a ) as a
full join
( select *, binary_checksum(*) as bchk from b ) as b
on a.[order id] = b.[order id]
where
a.bchk <> b.bchk
or a.bchk + b.bchk is null
rockmoose