-- (a) Report new values select distinct property from #HOLD where property not in (select property from table2) -- (b) Mark records containing those new values update #HOLD set record_state='N' where property not in (select property from table2) -- (c) Generate new dictionary items (assumes auto-incrementing ID column) insert table2 (property) select distinct property from #HOLD where property not in (select property from table2) -- (d) Delete records containing an unknown value (assumes you didn't -- add new dictionary items) delete #HOLD where property not in (select property from table2)