使用存储过程中最后一行的单个值插入新行

Insert a NEW Row using a Single Value from LAST row with Stored Procedure

请参考下面的屏幕截图。

我正在尝试在 SQL Server 2014 中创建一个存储过程来执行以下操作:

  1. 将最后一条记录(例如第 1062 行)中的“Complete”BIT 设置为 TRUE

  2. 从最后一条记录(以黄色突出显示)中获取“DateTo”值并将其插入到“DateFrom" 新行中的列。

这应该是所有需要的,因为其他列(BatchID、DateTo、Complete)是自动填充的。

如有任何帮助,我们将不胜感激!

这是你想要的吗?

update t
    set complete = 1
    from (select top (1) t.*
          from t
          order by datefrom desc
         ) t;

然后:

insert into t (datefrom, complete)
    select top (1) dateto, 0
    from t
    order by datefrom desc;

你需要两个声明。首先更新最新行,然后插入新行:

with cte as (select top (1) complete from billing_batch order by dateto desc)
update cte set complete = 1;

insert into billing_batch (datefrom)
select max(dateto) 
from billing_batch;