Tsql 渐进式sql更新语句

Tsql 渐进式sql更新语句,tsql,progressive,Tsql,Progressive,6我有两张表,如下所示, 表a: 表B: TENTATIVE_ID LAST_AUTO_ASSIGNED_ON 26 6/15/2012 11 6/16/2012 21 6/13/2012 27 6/20/2012 28 6/22/2012 29 6/25/2012 8 6/26/2012 21 6/24/2012 情况是,我需要根据最小LAST_AUTO_ASSIGNED_on值使用表B中的暂定_id更新表A中的空值,并且每次分配id LAST_AUTO_ASSIGN

6我有两张表,如下所示, 表a:

表B:

TENTATIVE_ID    LAST_AUTO_ASSIGNED_ON
26  6/15/2012
11  6/16/2012
21  6/13/2012
27  6/20/2012
28  6/22/2012
29  6/25/2012
8   6/26/2012
21  6/24/2012
情况是,我需要根据最小LAST_AUTO_ASSIGNED_on值使用表B中的暂定_id更新表A中的空值,并且每次分配id LAST_AUTO_ASSIGNED_on时,都会使用表B中该id的当前日期时间更新

通过这种方式,我们循环遍历表B中的所有暂定ID,并将它们分配给表A

我不允许使用游标。我怎样才能做到这一点

谢谢

更新表a set tablea.TESTATIAL_id=根据上次自动分配的暂定id从表格顺序中选择前1个表格B.TESTATIAL_id, 暂定开始日期=getdate 从表格 其中tablea.u id为空

更新表B 设置上次自动分配的日期=getdate
其中,暂定id=选择前1个表格B。暂定id从表格B按上次自动分配的顺序排列,暂定id

表格B中有两行数据完全相同。不可能只在其中一个上更新日期。是否缺少一个字段?另外,如果您选择的是“最后自动分配的最小日期”,那么在具有相同最小日期的多个ID之间选择什么标准?此外,您还没有提到必须分配的暂定开始日期?我已经更新了表。表B没有重复项。暂定开始日期将设置为getdate。这必须在运行查询时动态完成。因此,对于每个插入,我们需要从表B order中获得最新的top id,即在日期自动分配的最小最后一个id。哪个查询?您以前没有提到过任何插入。请使用while exists循环检查空值。在while代码块中,使用top 1和order by获得所需的id。将该id更新为tablea,其中null和id是嵌套select中的最小值。然后更新表b。while代码块到此结束。只是澄清一下:您是从tableb获得id的,tablea的更新应该读取where Memberid=select top 1 Memberid,其中tentiveID按Memberid的顺序为null
TENTATIVE_ID    LAST_AUTO_ASSIGNED_ON
26  6/15/2012
11  6/16/2012
21  6/13/2012
27  6/20/2012
28  6/22/2012
29  6/25/2012
8   6/26/2012
21  6/24/2012