У меня есть представление, в котором есть realField1, RealField2, Realfield3 и многие другие реальные поля, а также вычисляемый столбец с именем isHighestVersion
.
(realField означает реальный столбец в таблице SQL Server, имена столбцов переименованы для краткости).
Представление основано на многотабличном запросе (на самом деле приходится несколько раз ссылаться на одну и ту же базовую таблицу, но SQL Server рассматривает их как несколько разных таблиц) и имеет один вычисляемый логический столбец с именем isHighestVersion
. Это представление не позволяет обновляться напрямую и выводит следующее сообщение об ошибке при попытке:
Не удалось обновить или вставить представление или функцию "xyz", поскольку оно содержит производное или постоянное поле.
Поскольку у меня будет много таких представлений, а поля базовых таблиц и представлений могут измениться во время разработки, я хочу иметь «общий» код SQL в триггерах, который извлекает все столбцы (кроме столбца isHighestVersion
) из "вставленная" таблица, а затем обновляет правильную запись в одной реальной базовой таблице - конечно, без несуществующего столбца ishighestversion
.
Как это сделать?
ALLOW_DML_IGNORE_COMPUTED_COLUMNS
). - person Damien_The_Unbeliever   schedule 10.10.2018