you mean run insert into queries from link table to access temp Table?
no - to your new tables, not a temp table
You need to be clear what deleted means - my usual preference is to not delete the record but to have a 'deleted on' date field. All depends what your data represents - a complete download from some system or other so if a record exists in your table but not in your file then it is 'deleted'. On the other hand if it is an 'update' file, the fact a record is not in the file just means there is nothing to update.
usual basis for each table is to run a number of queries
records in both tables where data has changed - run an inner join update query
or if you need to maintain history an inner join insert query
record in file, not a table - run a distinct left join insert query
record in table, not in file - run a distinct right join update query (or delete query)
where records in both tables where data is the same - no change required but you may want to update a field with that fact
Always worth having some date fields in the tables so you know when the record was created, changed, deleted etc
Hmm what do you think by lookup for specific row?
not sure what you mean by this - your post implies the csv is already in a table format so don't see the point of reading the file row by row (if this is what you mean). It might be faster overall, it might not. But running a number of 'long' queries over the dataset will almost certainly be faster than running those same queries on a row by row basis. You would need to experiment.