【发布时间】:2018-08-06 00:56:28
【问题描述】:
我使用 SQLServer 2017,我有一个表,我想为每个 id 自动递增。 示例表 A 有列
PolicyID、ClaimID、TranId
具有以下值
ABC123、111、1
当插入/添加另一行时,TranId 将显示 2,依此类推,但如果 PolicyID 不同,可以说 ABC456,那么预期的 TranId 应该是 1,但我的表只是不断增加而不是每个 PolicyID。
【问题讨论】:
-
嗨,你能展示一下你尝试过的东西吗?你看过像
row_number() over(partition by column1, ..., column_n, order by column 1)这样的排名函数吗 -
我认为您所说的您想要做的是将这个值存储在表中;这是一个坏主意。为什么?好吧,问题在于,如果添加/删除/更新另一行,则可能意味着其他行也需要修改,因此这不是一个好主意。因此,相反,您最好创建一个具有此值的
VIEW。正如@MCP_infiltrator 所建议的那样,ROW_NUMBER()就是一个很好的例子。
标签: sql-server auto-increment sql-server-2017