SQL Server维护订单索引(产品阵容)

时间:2018-08-01 19:40:13

标签: sql sql-server

我有一个产品阵容

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#编写脚本。

1 个答案:

答案 0 :(得分:1)

除了在查询时选择row_number(如其他人在注释中建议的那样)之外,您还可以编写触发器,每次插入或删除行时都更新SqNumber列。

顺便说一句,我假设您不要SqNumber列用作其他表所引用的主键,因为如果您这样做了,则可以像这样对它进行重构这将是一个可怕的想法。