Подход с использованием табличных параметров, скорее всего, будет лучшим подходом, поскольку вы можете обновить целый ряд строк одновременно; в конце концов, вы получаете стол , к которому вы можете легко присоединиться.
Оба других подхода либо построчны, что по своей природе медленнее, либо требуют немалых усилий на стороне SQL Server; обычно это не только не очень весело, но и более подвержено ошибкам и обычно менее производительно, чем простое объединение двух таблиц.
Это как раз тот сценарий, для которого TVP был представлен - чтобы решить проблему «строка за строкой» или «возиться с XML». Я полагаю, что у Microsoft есть веская причина представить это, и если они это сделают, вам обязательно стоит попробовать и посмотреть, работает ли она.
Но опять же: это просто "внутреннее чувство", не зная всех ваших деталей. Только вы действительно можете узнать это сами, протестировав все три варианта. Есть множество других эффектов и параметров, которые могут вступить в игру, о которых любой отвечающий не может знать ...