Если устанавливаемое значение не является допустимым (такое значение отсутствует) для данной таблицы, то такая установка игнорируется.
Тип определяется расширением таблицы.
Если такая задача возникла, значит в ДатаПриИзмененииНаСервере() происходит какая-нибудь жесть, после которой все бывшие идентификаторы строк протухают.
(4) есть вариант найти строку не по идентификатору, а по комбинации значений колонок? Тогда можно получить ее идентификатор и пихнуть в текущую строку.