如何从特定表中获取下一个自动增量值
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 列,因为它只包含更新的值以上是关于如何从特定表中获取下一个自动增量值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PDO 在 MySQL 中找到下一个自动增量值? [复制]