如何重设Access表中的自动编号字段?(不是从1开始)
技术问答
99 人阅读
|
0 人回复
|
2023-09-13
|
我有一条INSERT INTO ... SELECT将数据从一个表复制到另一个表。
; u7 c2 y% |* K1 u. {1 |( r但问题是,在第二个表中AutoNumber列值从第一表中的最后一个数字开始。
# z; U, i9 n. y W这意味着第一个表的计数是2000,然后第二个表从2001开始。
1 R0 b, H$ `4 g. l使用Access如何在数据库中重置此值?0 e' a H* P2 t2 r
( i* s( b( V. l. `( u( K0 V 解决方案: 4 F& @7 O1 Z) T" r
您可以从ADO执行Access DDL句子重置自动编号的种子值。这是窗口会话的例子:
0 Y* A3 V c1 h5 u$ E6 fstrDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1,1);"CurrentProject.Connection.Execute strDdl该语句必须从ADO执行。如果你使用它DAO(例如CurrentDb.ExecutestrDdl)或通过Access如果设计师试图失败,它将失败。这个例子是成功的,因为CurrentProject.Connection是一个ADO对象。/ @4 }. A. Z( Z
后两个值COUNTER是 seed 和 crement3 ^3 R @6 d9 B9 C" G
。因此,如果我希望自动编号从1000开始并增加2,可以使用COUNTER(1000,2)% Y: _; _) I# N6 U
如果表中包含数据,则种子值必须大于最大存储值。如果执行语句时表为空,则不会有问题。 |
|
|
|
|
|