MSSQL控制序列

时间:2016-04-28 08:23:03

标签: sql sql-server

我需要一种管理表中序列的方法。我有一个表需要由序列管理。我必须能够在另外两行之间插入一行。 如果我有一个从1到10000的编号序列,我想插入一个介于100和101之间的行。或者我想将99移动到1到2之间。

这可以在SQL中管理,还是需要以编程方式管理它。

3 个答案:

答案 0 :(得分:1)

SQL Server表没有任何隐式命令!

强制执行序列的唯一方法是具有唯一值的可排序列(或列的组合)。

实现此目的的一种方法是在现有排序键后对行进行编号:

  • 添加一列SortKey BIGINT(在填充值后,您应将其设置为regex= "[[\\bberlin\\b|berlin]]"并创建NOT NULL

这个完整的工作示例将向您展示如何执行此操作:

unique index

答案 1 :(得分:0)

SQL不会以表中的任何特定顺序存储数据,当您使用索引或其他查询查看数据时,它就会出现这种情况。您必须拥有一个用于对数据进行排序的ID列。在两个当前行之间插入数据并不容易(例如,插入100到101之间需要重新编号101<)。

答案 2 :(得分:0)

实现此目的的一种方法是让您的序列不连续。也就是说,指定序列的增量以留下足以放置交错行的间隙。如果当然这并不完美,因为你可能会耗尽行内间隙,但这只是一个开始。