Выполнение запроса на SQL-сервере, который выполняет следующие действия, используя 2 таблицы: таблица 1, называемая «accadj», имеет список старых и новых значений для 3 поля, поэтому accadj имеет 6 столбцов. В таблице 2, называемой «accnt», есть фактические записи. когда запись в accnt соответствует старым значениям в accadj, значения в accnt изменяются так, чтобы они соответствовали новым значениям в accadj. accadj выглядит следующим образом:Нужно отображать записи базы данных до и после внесения изменений в SQL-сервер
и ACCNT выглядит следующим образом:
картины являются только отрывками полных таблиц. код для запроса, IM, описывающие работы и выглядит следующим образом:
Update accnt
set accnt.accno = accadj.accnonew,
accnt.jno =accadj.jnonew,
accnt.saccno =accadj.saccnonew
from accnt accnt join accadj accadj with(nolock)
on accnt.accno = accadj.accnoold
and accnt.jno = accadj.jnoold
and accnt.saccno =accadj.saccnoold
Мне нужно, чтобы показать, что записи выглядели как до, так и после того, как запрос был запущен, а затем распечатать этот список. я знаю, как показать записи до того, как запрос был запущен с помощью этого кода на линии всасывания кода я только что описал:
select accnt.*
from accnt, accadj
where accnt.accno = accadj.accnoold
and accnt.jno = accadj.jnoold
and accnt.saccno =accadj.saccnoold
, но после того, как запрос был запущен, старые записи больше не существует, и я не могу понять как отображать вновь измененные записи со старыми версиями. любые мысли о том, как это исправить?
Вам нужно будет запустить запрос ДО вашего обновления, чтобы получить значения перед обновлением. Прикрепите эти значения в таблице temp, а затем выполните обновление. Кстати, почему вы используете NOLOCK здесь? Вы в порядке с отсутствующими и/или повторяющимися строками? Это не волшебный вариант. http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –
Я не знаю, что он делает, но кто-то показал мне, как сделать эту программу, есть ли лучший способ? im не в порядке с недостающими строками. – Vbasic4now
Затем удалите подсказку NOLOCK. –