Часто мне бывает нужно отправить пользователю обновленную коллекцию записей в хранимую процедуру. Например, предположим, что в базе данных есть таблица контактов. На переднем крае я отображаю, скажем, 10 записей контактов для редактирования пользователем. Пользователь вносит свои изменения и сохраняет нажатия.
В этот момент я могу либо вызвать хранимую процедуру upsertContact 10 раз с измененными пользователем данными в цикле, либо отправить XML-файл в формате <contact><firstname>name</firstname><lastname>lname</lastname></contact>
со всеми 10 вместе в хранимую процедуру. Я всегда заканчиваю тем, что делал xml.
Есть ли лучший способ сделать это? Будет ли метод xml прерываться, если имеется большое количество записей из-за размера. Если да, то как люди достигают такой функциональности?
К вашему сведению, обычно это не просто прямое обновление таблицы, поэтому я не изучал sqldatasource.
Изменение: на основании запроса, версия до сих пор была SQL 2005, но сейчас мы обновляем ее до 2008 года. Итак, любые новые функции приветствуются. Благодаря.
Обновление : основываясь на этой статье и отзывах ниже, я думаю, что Табличные Значимые Параметры - лучший подход для выбора. Кроме того, новая функциональность merge в SQL Server 2008 прекрасно работает с TVP.