编写一个游标来搜索和插入

jexiocij  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(306)

我有这样的table:
主要的

id name   isedit 
1   kyle   0
2   jhon   1
3   dave   0

编辑历史记录

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;

我需要创建一个游标来检查 EditHistory 对于具有相同 idmain 如果有这样的行,编辑它的结束日期 GETDATE() 并插入 HistoryEdit 就像我现在的插页一样。
我知道用if很容易做到,我也会这么做。但我必须使用游标,我以前从未使用过游标。

lvmkulzt

lvmkulzt1#

我以前从没用过游标。
好吧,现在不要开始。只需在插入新行之前更新旧行:

declare @d datetime = GetDate()

update EditHistory set end = @d
where id in (select id from inserted)
  and end is null;

Insert into dbo.HistoryEdit
    ([idmain][name][isedit][Begin][end]) 
SELECT id, name, iedit, @d, null
from Inserted

相关问题