У меня есть такие таблицы:
Main
id name isedit
1 kyle 0
2 jhon 1
3 dave 0
EditHistory
id idmain name isedit Begin end
1 2 jhon 0 28.05.2020 18:30 28.05.2020 18:35
2 2 jhon 0 28.05.2020 18:35 NULL
3 1 kyle 0 27.05.2020 12:03 NULL
Сейчас я использую триггер:
(…) if update(isedit) and exists (
select 1
from Inserted I
where design = 0
) begin
Insert into dbo.HistoryEdit
([idmain][name][isedit][Begin][end]) SELECT id, name, iedit, GETDATE(), null
from Inserted
end;
I необходимо создать курсор, который будет проверять EditHistory
для предыдущих строк с таким же idmain
, и если такая строка есть, отредактируйте ее дату окончания на GETDATE()
и вставьте в HistoryEdit
, как в моей текущей вставке.
Я знаю, что это можно легко сделать с помощью IF, и именно так я бы это сделал. Но для этого мне нужно использовать курсор, и я никогда раньше не использовал курсор.