If I'm hearing what you're saying correctly, consider making your batch_id "match" an uploaded document by adding in your procedure something like:
declare @batch_id intuniqueidentifier
select @batch_id = maxnewid(batch_id)+1 from main_table
insert into main_table (employee_id, name, email, ... batch_id) values (101,'Max Chan','[email protected]', @batch_id)
insert into main_table (employee_id, name, email, ... batch_id) values (102,'Next User','[email protected]', @batch_id)
That way, the batch_id will match the uploaded document. And, no batch_ids will be the same using the GUID approach.