基于ID的SQL自动增量



使用SQLServer 2017,我有一个我想自动为每个ID增量的表。示例表A有列

策略ID,索赔ID,tranid

具有以下值

abc123,111,1

当另一行被插入/添加的tranid将显示2,依此类推,但是如果策略ID是不同的,请说ABC456,那么预期的tranid应该是1,但是我的表格只是继续增加而不是policy policy。

div class =" ans">

您正在尝试创建一个序列,并且不应存储在表中。

尝试创建视图:

create vw_xxx as
(
select PolicyID, ClaimID
      , TranId = row_number() over (partition by PolicyID order by ClaimID)
from tableXXX
)

这是如何执行此操作的一个示例。您需要通过正确的分区和订购以获取正确的顺序。

如果此表很大,则您要在分区上有一个索引,按列订购。

每次在MyTable中输入新行时,您都必须运行以下UPDATE

UPDATE Table_A
SET Table_A.TranId = Table_B.[TranId]
FROM MyTable AS Table_A
INNER JOIN (
    SELECT PolicyID, ClaimID, ROW_NUMBER() OVER (PARTITION BY PolicyID, ClaimID ORDER BY ClaimID) AS [TranId]

来自mytable (table_b on table_a.a.policyid = table_b.policyid and table_a.claimid = table_b.claimid

相关内容

  • 没有找到相关文章

最新更新