gpt4 book ai didi

sql - 使用@@Identity

转载 作者:行者123 更新时间:2023-12-04 15:34:57 24 4
gpt4 key购买 nike

我想知道如何从另一个数据库中的表中获取最近生成的自动编号值。目前我正在这样做:

Do Until rsA.EOF
'Inserts new row here (works)
Set rs = New ADODB.Recordset
rs.Open "SELECT @@Identity" (Connection info)
SQLcmd = "UPDATE tbl SET col = " & rs("SELECT @@Identity").Value & "
(WHERE statement);"
DoCmd.RunSQL SQLcmd
rsA.MoveNext
Loop

但它给 col 一个值为 0 而不是新生成的自动编号。
知道为什么吗?或者另一种方法来做到这一点?

最佳答案

您没有显示执行 INSERT 的代码进入另一个数据库。如果您使用的是 Execute ADO Connection 对象的方法来做到这一点,运行 SELECT @@Identity来自同一个连接对象的查询......不是具有相同连接字符串的新连接。 @@Identity只能在同一个连接 session 中使用;否则你会得到0。

实际上,您甚至不需要记录集来捕获该值。如果您的连接对象名为 conn ,这将返回一个记录集,但您不需要将它分配给一个记录集对象变量。只需从返回的记录集中请求第一项。

Debug.Print "most recent autonumber: " & _
conn.Execute("SELECT @@Identity")(0)

关于sql - 使用@@Identity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com