我有一个产品阵容
SqNumber Product Name
-------------------------
1 Product 1
2 Product 2
3 Product 3
4 Product 4
现在我要选择产品(例如产品3)并将其移至“生产”,因此,我将从表中删除该行
SqNumber Product Name
-------------------------
1 Product 1
2 Product 2
4 Product 4
接下来,我要重新编号SqNumber
(VB脚本)
SqNumber Product Name
-------------------------
1 Product 1
2 Product 2
3 Product 4
我想知道是否有一种方法可以使SQL保留行号,而不是用VB或C#编写脚本。
答案 0 :(得分:1)
除了在查询时选择row_number(如其他人在注释中建议的那样)之外,您还可以编写触发器,每次插入或删除行时都更新SqNumber
列。
顺便说一句,我假设您不要将SqNumber
列用作其他表所引用的主键,因为如果您这样做了,则可以像这样对它进行重构这将是一个可怕的想法。