Это скорее комментарий, чем полный ответ, но мне не хватило места, поэтому, пожалуйста, не голосуйте за то, что он не отвечает критериям.
Меня беспокоит то, что при оценке набора для отсутствующих ключей и последующей массовой вставке вы рискуете добавить ключ в другое время.Вы заявили, что это может быть от большого числа клиентов, так что это произойдет.Да, вы могли бы обернуть его в большую транзакцию, но большие транзакции - это то, что свиньи заблокировали бы других клиентов.
Я думаю, что нужно иметь дело с теми, у кого есть ключи в отдельности, при условии отсутствия риска, что PK будет удален.TVP эффективен, но вам нужны точные знания о том, что было обработано.Я думаю, вам нужно сначала выполнить поиск по имени, чтобы получить список существующих ПК, а затем обработать его с помощью TVP.
Для обеспечения целостности данных обрабатывайте остальные по одному с помощью хранимой процедуры, которая создает PK по мере необходимости.
Тысячи записей не страшны (миллионы есть).Большое количество «клиентов», это страшная часть.