Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何重置表中的编号?_Sql_Ms Access - Fatal编程技术网

Sql 如何重置表中的编号?

Sql 如何重置表中的编号?,sql,ms-access,Sql,Ms Access,我有一些我一直在处理的数据。有了这些,我一直在动态删除记录。现在我有了一个工作的数据模型,我想重新开始我的自动编号。如何重置现有数据,使其符合从1…n开始的自动格式 我曾尝试过压缩和修复,但似乎无法解决问题 作为参考,我的表格如下所示: R-002 R-054 R-123 R-057 R-061 我想让他们回到: R-001 R-002 R-003 R-004 R-005 对于随后添加的每个条目,请遵循此新的自动编号,以便下一条记录(例如)为R-006 编写一个

我有一些我一直在处理的数据。有了这些,我一直在动态删除记录。现在我有了一个工作的数据模型,我想重新开始我的自动编号。如何重置现有数据,使其符合从1…n开始的自动格式

我曾尝试过压缩和修复,但似乎无法解决问题

作为参考,我的表格如下所示:

R-002
R-054
R-123
R-057
R-061
我想让他们回到:

   R-001
   R-002
   R-003
   R-004
   R-005
对于随后添加的每个条目,请遵循此新的自动编号,以便下一条记录(例如)为
R-006

编写一个
更新
查询可以立即修复,但它不能解决将来条目是否遵循自动编号的问题

我认为有一种优雅的方法可以做到这一点。我的表中的数据是
关系的一部分
,因此有点棘手

如果有人有任何提示/建议,我将不胜感激。

您需要的是记录的顺序编号

我写了一篇关于各种方法的文章:

一种是添加行号:

”在选择、追加或创建查询中生成连续的行号
'带有初始自动重置选项。
'可选地,可以传递分组键以重置行计数
'对于每个组键。
'
' 2018-08-23. 古斯塔夫·布罗克,仙人掌数据ApS,CPH。
'
公共功能行号(_
ByVal键作为字符串_
可选的ByVal GroupKey作为字符串_
可选的ByVal重置为布尔值)_
只要
'将GroupKey和Key组合为复合键的不常见字符串。
常量keysepator为String=“·§·”
'预期要接受的错误代码。
Const CannotAddKey的长度=457
Const CannotRemoveKey的长度=5
作为新集合的静态键
静态组键作为新集合
不算长
作为字符串的Dim CompoundKey
On Error转到Err_RowNumber
如果重置=真,则
'擦除密钥集合和组密钥计数。
设置关键点=无
设置组键=无
其他的
'创建复合键以唯一标识GroupKey及其键。
'注意:如果未使用GroupKey,则只会添加一个元素。
组合键=组键和键分离器和键
计数=键(复合键)
如果计数=0,则
"这条记录还没有被列举出来。
'
'将失败,如果组密钥是新的,则将计数保留为零,
'或使用此组密钥检索已枚举记录的计数。
计数=组键(组键)+1
如果计数>0,则
'已记录组密钥。
'删除它以允许在保留新计数的情况下重新创建它。
GroupKey.Remove(GroupKey)
其他的
'此记录是第一个具有此组密钥的记录。
因此,计数为1。
计数=1
如果结束
'(重新)使用密钥计数的值创建组密钥项。
GroupKey.addcount,GroupKey
如果结束
'添加键及其枚举。
“这将是:
'不使用组键:相对于完整记录集。
'使用组键:相对于组键。
'将失败,如果已创建密钥。
键。添加计数,复合键
如果结束
'返回键值,因为这是行计数器。
行数=计数
出口号码:
退出功能
错误号:
选择大小写错误
盒装钥匙
'键存在,因此无法再次添加。
下一步继续
箱筒拆卸钥匙
'组密钥不存在,因此无法删除。
下一步继续
其他情况
“还有别的错误。忽略。
恢复出口号码
结束选择
端函数
您可以根据自己的喜好格式化这些文件,例如:

RNumber: "R-" & Format([RwoNumber], "000")

我建议不要这样做:如果这些数字有任何意义(或显示在用户界面中),你不应该使用自动数字,因为你将来会有新的差距。如果它们没有任何意义,并且没有显示在用户界面中,您不应该关心它们是否有间隙。它们显示在UI中,因此这就是我要处理的问题。压缩和修复会将自动编号重置为。要在1重新启动,必须删除所有记录。没有自动更新所有数字的方法。是否进行更新查询以重置数字,然后在更新后,获取表中的最后一个元素,然后为新值将其递增1?@Darnold14:如果它们显示在UI中,推荐的方法不是使用自动编号,而是自己递增。这样,你就可以完全控制这些数字。很有趣。但是,什么事件会触发此方法?无。预期用途是a查询。我很感谢您的回答-您能演示一下它在带有引用表的查询中的外观吗?不确定引用表在此上下文中可能是什么。。。但请研究链接的文章及其附带的完整演示。