基于服务的数据库的序列号

时间:2016-08-26 03:58:45

标签: c# sql tsql visual-studio-2015 local-database

我正在试图找出,如果我的本地数据库(基于服务的数据库)中的任何行被删除,我想要给第二行(删除后的下一个)删除行的索引,对所有后续行使用相同的步骤当然,保持插入行的原始顺序也很重要。同样的问题我从这里开始:How to setup auto increment for Service-Based Database但现在我正在寻找一种不同的解决方式。我想要一些计算的行数来读取行。很快就会明白,最好不要这样做,因为我在这里试过Reset auto increment所以我需要数字序列。因此,在这种情况下,索引号表示序列号,例如:

  
      
  1. 第1行
  2.   
  3. 第2行
  4.   
  5. 第3行
  6.   
  7. 第4行
  8.   

如果删除了line2,我想要这个结果:

  
      
  1. 第1行
  2.   
  3. 第3行
  4.   
  5. 第4行
  6.   

如果删除所有行,然后插入新行,则 1。新的第一行 而非 5。新的第一行 因为它现在与索引一起使用。

1 个答案:

答案 0 :(得分:0)

我认为你应该使用一个自动递增的字段(比如ID)来“保持插入行的原始顺序”。并使用VIEW作为示例,使用ROW_NUMBER()函数从表中选择行来模拟序列号

CREATE VIEW T_WITH_ROW_ID  
AS
SELECT ROW_NUMBER() OVER(ORDER BY ID) as ROW_ID,
       T.*
       FROM T

并将其用作

SELECT * FROM T_WITH_ROW_ID