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