C# 基于服务的数据库的序列号
我试图弄清楚,如果我的本地数据库(基于服务的数据库)中的任何一行被删除,我想给被删除行的第二行(删除后的下一行)索引,当然,所有后续行都有相同的退步,在插入时保持行的原始顺序也很重要。所以我从这里开始问同样的问题:但现在我在寻找一种不同的解决方法。我想把这行数用于一些计算,以读取行数。很快就明白了,最好不要这样做,因为我在这里尝试过,所以我似乎需要数字序列。因此,在这种情况下,索引号表示序列号,例如:C# 基于服务的数据库的序列号,c#,sql,tsql,visual-studio-2015,local-database,C#,Sql,Tsql,Visual Studio 2015,Local Database,我试图弄清楚,如果我的本地数据库(基于服务的数据库)中的任何一行被删除,我想给被删除行的第二行(删除后的下一行)索引,当然,所有后续行都有相同的退步,在插入时保持行的原始顺序也很重要。所以我从这里开始问同样的问题:但现在我在寻找一种不同的解决方法。我想把这行数用于一些计算,以读取行数。很快就明白了,最好不要这样做,因为我在这里尝试过,所以我似乎需要数字序列。因此,在这种情况下,索引号表示序列号,例如: 第1行 第2行 第3行 第4行 如果删除了第2行,我希望得到以下结果: 第1行 第3行 第4行
如果删除所有行,然后插入新行,则新行变为1。新的第一行和非第五行。新的第一行现在可以与索引一起使用 我认为您应该使用一个自动递增的字段(比如
ID
)来“在插入时保持行的原始顺序”。例如,使用视图从表中选择行,使用函数模拟序列号
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
我认为您应该使用一个自动递增的字段(比如
ID
)来“在插入时保持行的原始顺序”。例如,使用视图从表中选择行,使用函数模拟序列号
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
我怀疑你是否真的需要存储连续的数字。相反,我建议使用一个自动递增字段来维护您的订单,然后在视图中处理这个“显示”逻辑。。。不要把数据库看作是一种表示逻辑,而是一种存储,在这种存储中,一些字段可以按顺序生成预期结果…@sgedes我已经尝试使用t-sql自动增量设置来完成这项工作,从我这里开始,但这似乎不是一个很好的主意。我怀疑您是否真的需要存储连续的数字。相反,我建议使用一个自动递增字段来维护您的订单,然后在视图中处理这个“显示”逻辑。。。不要把数据库看作是一种表示逻辑,而是一种存储,其中一些字段可以按顺序排列以产生预期的结果…@sgedes我已经尝试使用t-sql自动增量设置来完成这项工作,但这似乎不是一个很好的主意