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