如何检索 MS-Access 中的最后一个自动增量值,例如 Sql Server 中的 @@Identity

Posted

技术标签:

【中文标题】如何检索 MS-Access 中的最后一个自动增量值,例如 Sql Server 中的 @@Identity【英文标题】:How to retrieve last autoincremented value in MS-Access like @@Identity in Sql Server 【发布时间】:2010-01-17 20:10:20 【问题描述】:

我想从一个自动递增的列中检索以毫秒访问为单位的标识列值。 基本上我正在运行一个事务,其中我必须编写两个插入查询。第二个查询将包含从查询 1 生成的自动增量值。我该怎么做?

【问题讨论】:

你为什么不直接尝试 SELECT @@IDENTITY? 【参考方案1】:

但是,Microsoft Access 2000 或更高版本确实支持 @@IDENTITY 属性在 INSERT 之后检索自动编号字段的值

来源:Retrieving Identity or Autonumber Values

编辑:正如@David-W-Fenton 所述,您还需要使用Jet 4.0 OLE DB Provider(这在之前的文档中也有描述)

【讨论】:

支持 SELECT @@IDENTITY 的是 Jet 4,而不是 Access 2000。 @David,引用的文档谈到了 Access 2000 和 Jet 4.0 的组合;我会更新这个答案以同情这方面。 Debug.Print CurrentDb.OpenRecordset("select @@identity")(0) 在调试窗口中工作.. 不知道需要使用 Jet 4 OLE DB 提供程序是什么意思——它与针对 Jet 4 的 DAO 和转发器一起工作得很好。我一直都在使用它,而且在我的整个 Access 编程生涯中,我编写的 ADO/OLEDB 代码从未超过几百行。 @Rubens Farias:“A2000 和 Jet 4.0 的组合”——呃,A2000 默认使用 Jet 4,所以这是意料之中的。不确定您要说什么,但仅当您使用 ADO/OLEDB(或您未提及的 SQL 92 模式)时才支持 Jet 中的 SELECT @@IDENTITY 的断言是完全不正确的。请更正您的帖子。

以上是关于如何检索 MS-Access 中的最后一个自动增量值,例如 Sql Server 中的 @@Identity的主要内容,如果未能解决你的问题,请参考以下文章

根据最后一个自动增量主键检索记录并在输入字段中查看

分组最后一个值的 MS-Access 设计模式

如何将日期从 C# 存储到 MS-Access 以及如何检索它?

Google Cloud Spanner 中的自动增量

如何在 ms-access VBA 中检索表的 odbc 数据库名称

如何在 VB.net 中使用 ROWNUM 从 MS-Access 数据库中检索数据