Я пытаюсь обновить 37k записей новым значением, но до этого я пытаюсь ввести запись журнала аудита, чтобы записать предыдущее значение.Я сталкиваюсь с тем, что команда Update, хотя и идет после команды INSERT INTO, в «Предыдущем значении» команды INSERT INTO отображается новое значение.Похоже, что команда Update обрабатывается первой.
WHILE @iLP <=@cntDeal_SD
BEGIN
-- History Change
SET @PrevSettleDate=(SELECT SettleDate FROM Deal WHERE DealID=@Deal_ID)
INSERT INTO History
(ItemKey,LoginID,TimeStamp,HowChanged,FieldChanged,PreviousValue,NewValue,Comment,Created)
VALUES ('CDeal' + CAST(@Deal_ID AS varchar(10)),1,GETDATE(), 'M','SettleDate', ISNULL(@PrevSettleDate,'NULL'), '3/02/2012', 'TSR5691', 0)
-- Record Change
SET @Deal_ID = (SELECT DealID FROM @tblDeal_SD WHERE Row = @iLP)
UPDATE Deal SET SettleDate = '3/02/2012' WHERE DealID=@Deal_ID
SET @iLP=@iLP + 1
END
[Edit] Только что понял, что мой оператор SET @Deal_ID падает после моего INSERT INTO.
ХотяРанее я осознал, что мне нужно опубликовать INSERT INTO до моего ОБНОВЛЕНИЯ. Я не смог переместить утверждение SET, на котором все основано.
Мой плохой.