【问题标题】: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]; 但不支持。

【问题讨论】:

    标签: vb.net sql-server-ce


    【解决方案1】:
    【解决方案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 列,因为它只包含更新的值
    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 2013-06-29
    • 2010-11-25
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 2020-01-29
    相关资源
    最近更新 更多