Представьте, что в таблице Products
есть столбец Price
, и цена может измениться.
Меня это устраивает, но я хочу сохранить исходное значение Price
в другом столбце.
Есть ли какой-либо автоматический способ, которым сервер MS SQL может это сделать?
Могу ли я сделать это с помощью поля Значение по умолчанию?
Нужно ли объявлять триггер?
Обновлять
Я попытался использовать Price
, чтобы упростить вопрос, но похоже, что это спровоцировало использование отдельных табличных ответов.
Прошу прощения за путаницу, которую я вызвал.
В реальном мире мне нужно сохранить идентификатор внешнего ключа, и мне на 100% нужны только текущее и исходное значения.
Обновление 2
Меня немного смутили различные предложенные подходы, поэтому, пожалуйста, позвольте мне еще раз объяснить ситуацию.
Воображаемая таблица Products
имеет три поля: ID
, Price
и OriginalPrice
.
Я хочу установить значение OriginalPrice
в Price
для любой вставки.
Иногда это один продукт, созданный из кода. Иногда есть тысячи продуктов, созданных одним insert
из хранимой процедуры, поэтому я также хочу правильно обрабатывать их.
После установки OriginalPrice
я никогда не собираюсь его обновлять.
Надеюсь, теперь мой вопрос стал понятнее.
Спасибо за ваши усилия.
Окончательное обновление
Я хочу поблагодарить всех, особенно @gbn, за их помощь.
Хотя я опубликовал мой собственный ответ, он в значительной степени основан на ответ @gbn и его дальнейшие предложения. Его ответ также более полный, поэтому я отмечаю его как правильный.