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