Как заставить sql-сервер игнорировать вставку в вычисляемый столбец, а не выдавать ошибку?
У меня есть таблица, в которую я хотел бы добавить вычисляемый столбец (со значениями, отличающимися для каждого пользователя - необходимые для разрешений).
Проблема в том, что эта таблица является частью Microsoft Dynamics NAV, которая ничего не знает о вычисляемых столбцах.
Мне удалось обмануть NAV, чтобы изменить тип столбца после того, как NAV его создаст, и я смогу прочитать данные.
Теперь я застрял со вставками.
NAV не использует пустые столбцы, поэтому он всегда пытается вставить значение по умолчанию, и SQL Server завершает работу с ошибкой в вычисляемом столбце.
Я пытался написать триггер INSTEAD OF INSERT, но кажется, что SQL Server выполняет проверку, прежде чем он запускает триггер и все еще не удается с ошибкой.
Есть ли способ заставить SQL Server игнорировать вставленное значение в вычисляемом столбце?
1 ответ
Лично я бы не стал менять схему стороннего приложения, особенно финансовой системы. Вместо того, чтобы изменять таблицы, вы можете создавать представления - вы даже можете создавать их в другой базе данных, если хотите, - которые включают в себя определение вычисляемого столбца, а затем помещать INSTEAD OF
вызывает на представлениях и делать INSERT
через взгляды.