当前位置: 首页 > 面试题库 >

如何重设Access表的“自动编号”字段?(不是从1开始)

令狐跃
2023-03-14
问题内容

我有一条INSERT INTO ... SELECT语句将数据从一个表复制到另一个表。

但问题是,第二个表中的AutoNumber列值从第一个表中的最后一个数字开始。
这意味着第一个表的计数是2000,然后,第二个表从2001开始。

使用Access数据库时,如何重设此值?


问题答案:

您可以从ADO执行Access DDL语句以重置自动编号种子值。这是立即窗口会话的示例:

strDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strDdl

该语句必须从ADO执行。如果您使用DAO(例如CurrentDb.Execute strDdl)或通过Access查询设计器尝试失败,它将失败。该示例成功,因为CurrentProject.Connection是一个ADO对象。

后面的两个值COUNTERseedcrement
。因此,如果我希望自动编号从1000开始并增加2,则可以使用COUNTER(1000, 2)

如果表中包含数据,则种子值必须大于最大存储值。如果执行语句时表为空,则不会有问题。



 类似资料:
  • 本文向大家介绍SQL server 2005中设置自动编号字段的方法,包括了SQL server 2005中设置自动编号字段的方法的使用技巧和注意事项,需要的朋友参考一下 如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。 具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。在包含标

  • 现在,我把我的ID字段作为MySQL中的主键,并启用了AUTO_INCREMENT。我想知道的是如何使ID表示表中该行的编号,而不是在插入时给它一个数字,然后坚持使用该数字?因为当我删除一些东西时,那个数字就不会被使用。我希望它们根据行数都是唯一的。

  • 现在,我将ID字段作为MySQL中的主键,并将AUTO_INCREMENT打开。我想知道的是,如何使ID代表表中该行的编号,而不是在插入时给它一个编号,然后坚持使用该编号?因为当我删除一些东西时,那个号码就不用了。我希望它们都是唯一的基于行计数。

  • 有没有办法以降价格式创建自动编号的列表?目前,我必须手动输入我希望出现的数字,但如果我在列表中插入项目,则必须对以下所有项目重新编号很麻烦。

  • 问题内容: 我在运行一个有自动编号作为PK字段的语句时遇到麻烦。我有一个自动增量作为主键,然后是4个类型的字段;但是Access(使用ADO)似乎想要insert语句使用五个值。 如何使用自动编号功能进行实际编号? 问题答案: 如果不想为表中存在的所有列提供值,则必须指定要插入的列。(这是合乎逻辑的,否则,access或任何其他DB应该如何知道您要为哪些列提供值)? 因此,您要做的是: 另外,请确

  • 问题内容: 我有一个VB6 / Access应用程序,偶尔会遇到错误的自动编号字段种子问题。 可以说有一个具有自动编号字段ID(也是主键)的表MYTABLE。可以说,当前ID的最大值为1000。当应用程序插入新记录(未明确提供ID值)时,由于某种原因,它决定下一个自动编号字段值为950(而不是应为1001)。 )-因此发生主键冲突错误。 我找到了一篇描述我的症状的知识库文章:http : //su