create table #Master(f0 int, f1 varchar(4), f2 varchar(4), f3 int)
insert into #Master values(1, 't1', 'i', 30)
insert into #Master values(2, 't2', 'f', 45)
insert into #Master values(3, 't4', 'f2', 50)
/*
1 t3 i 31
2 t2 f 45
3 t1 j 32
*/
create table #Live(f0 int, f1 varchar(4), f2 varchar(4), f3 int)
BULK INSERT #Live
FROM 'c:\sunil\import.txt'
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
select * from #Master
Select * from #live
Select t1.f0,
fieldDiff
from #Live t1
inner join
(select t1.f0,
case when t.f0 <> t1.f0 then 't1.f0 = ' + cast(t1.f0 as varchar) + ' should be ' + cast(t.f0 as varchar) else '' end fieldDiff
from #Live t1
left outer join #Master t on t1.f0=t.f0
Union
Select t1.f0,
case when t.f1 <> t1.f1 then 't1.f1 = ' + cast(t1.f1 as varchar) + ' should be ' + cast(t.f1 as varchar) else '' end fieldDiff
from #Live t1
left outer join #Master t on t1.f0=t.f0
Union
Select t1.f0,
case when t.f2 <> t1.f2 then 't1.f2 = ' + cast(t1.f2 as varchar) + ' should be ' + cast(t.f2 as varchar) else '' end fieldDiff
from #Live t1
left outer join #Master t on t1.f0=t.f0
Union
Select t1.f0,
case when t.f3 <> t1.f3 then 't1.f2 = ' + cast(t1.f3 as varchar) + ' should be ' + cast(t.f3 as varchar) else '' end fieldDiff
from #Live t1
left outer join #Master t on t1.f0=t.f0
) t on t1.f0=t.f0 and t.FieldDiff <> '' order by t1.f0