如何从特定表中获取下一个自动增量值

Posted

技术标签:

【中文标题】如何从特定表中获取下一个自动增量值【英文标题】:How to get next Auto Increment value from specific table 【发布时间】:2013-07-29 08:26:35 【问题描述】:

我有 customer 表,其中 自动递增 - 主键列 - cust_Id

出于某种原因,我需要知道系统中的下一个 cust_Id

那么如何找到它?查询是什么?

附言- 我试过这个 SELECT ident_current('dbo.SomeTable') AS [LastID_1]; 但不支持。

【问题讨论】:

【参考方案1】:

请参阅此处的链接。您还应该添加增量值

http://social.msdn.microsoft.com/Forums/vstudio/en-US/4d346672-4ad4-4a82-acf8-de392706a959/get-the-next-value-of-identity

【讨论】:

【参考方案2】:
SELECT MAX(youridfieldname+1) As NextId FROM "yourtable name"

例如 如果您的字段名称是 ID 并且您的表名称是 Table1 :

SELECT Max(ID+1) AS NextID FROM Table1;

【讨论】:

在这种情况下这是错误的:如果我最近删除了最后一行(具有最大 ID 的记录)。【参考方案3】:
select (max( ident_current('dbo.SomeTable')) + 1) AS [Next_id]

【讨论】:

发生此错误:列名无效。 [节点名称(如果有)=,列名称=] 现在我编辑了最后一条评论..关于圆括号放错了 现在的错误是:SQL Server Compact Edition 无法识别该函数 :( 最好的方法是创建一个只包含 ident_current 的最后一个值的新表。根据我的说法,紧凑版 SQL 不支持触​​发器,你可以从这里下载插件 microsoft.com/en-us/download/details.aspx?id=22875 我会解释给你如何创建表 lastcustvalue ( ident_current int);然后创建一个触发器,它总是在这个表中存储更新的值。所以表将始终包含 1 行和 1 列,因为它只包含更新的值

以上是关于如何从特定表中获取下一个自动增量值的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql中获取下一个自动增量值

如何使用 PDO 在 MySQL 中找到下一个自动增量值? [复制]

CakePHP:删除行后如何使自动增量值再次连续

C#获取mysql自动增量值[重复]

如何在单个查询(sql server)中插入1条记录后检索自动增量值

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