Вы действительно можете только сделать это с хорошим инструментом ORM, который генерирует запрос на обновление для вас. Он, как правило, смотрит на то, что изменилось и генерирует запрос только для измененных столбцов.
Если вы используете хранимую процедуру, тогда все значения столбцов будут отправляться в базу данных в любом случае, когда вы вызываете хранимую процедуру, чтобы вы не могли ее сохранить. SP, вероятно, просто выполнит операционный оператор UPDATE. Затем RDMS берет верх. Он не будет физически изменять данные на диске, если он не отличается. Для этого он достаточно умен.
Итак, ответьте кратко: не беспокойтесь об этом. Это не очень важно и требует радикальных изменений, чтобы получить то, что вы хотите, и вы даже не увидите преимуществ производительности.
Насколько я понимаю, наименьшая единица работы для базы данных была строкой и что она стоила того же самого, чтобы обновлять один столбец, как и для их обновления. Я считаю, что единственным исключением из этого могут быть таблицы, содержащие столбцы text/ntext или blob. – MyItchyChin
не обязательно верно. если у этих столбцов есть внешние ключи и индексы, их может быть больше работы, необходимой для обновления данной строки –
. Вопрос в том, какой rdbms? если это sql 2008, может помочь инструкция MERGE. –