听起来好像您想要一个Identity列,一旦它获得初始值,就可以覆盖它。一种解决方案是拥有两列,一次称为“
InitialOrder”,即一个自动递增的身份列,然后是第二个名为doc_order的列,该列最初设置为与InitialOrder字段相同的值(甚至可能是插入触发器或存储过程(如果您这样做的话),但是可以让用户编辑该列。
每条记录确实需要额外的几个字节,但是可以解决您的问题,并且如果它根本没有任何价值,那么您将同时拥有初始文档顺序和用户重置顺序。
另外,我不确定您的doc_order是否需要唯一,但如果不是,则可以按doc_order和InitialOrder对返回值进行排序,以确保返回顺序一致。



