首页 > 解决方案 > 使用存储过程的最后一行中的单个值插入新行

问题描述

请参阅下面的屏幕截图。

表格图

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

  1. 将 LAST 记录(例如第 #1062 行)中的“完成”位设置为TRUE

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

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

任何帮助将不胜感激!

标签: sqlsql-serverstored-proceduressql-updatesql-insert

解决方案


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

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;

推荐阅读