当前位置: 首页 > 面试题库 >

如何在sql中获取下一个autoincrement值

汪高岑
2023-03-14
问题内容

我正在用c#。创建一个Winform应用程序,并使用sql数据库。

我有一个表,employee_master其中有列,如Id, name, addressphone noId是自动递增,所有其他数据类型是varchar

我正在使用此代码来获取下一个自动增量值:

string s = "select max(id) as Id from Employee_Master";
SqlCommand cmd = new SqlCommand(s, obj.con);
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
int i = Convert.ToInt16(dr["Id"].ToString());
txtId.Text = (i + 1).ToString();

我在textBox上显示。

但是,当删除表中的最后一行时,我仍然得到该值,该值最近在文本框中删除了

我应该如何获得下一个自动增量值?


问题答案:

要从SQLServer获取下一个自动增量值:

这将获取当前的自动增量值。

SELECT IDENT_CURRENT('table_name');

下一个自动增量值。

SELECT IDENT_CURRENT('table_name')+1;

------>即使您添加一行然后将其删除,这也将起作用,因为IDENT_CURRENT返回为任何会话和任何作用域中的特定表生成的最后一个标识值。



 类似资料:
  • 问题内容: 假设我有ID为3、4、7、9的记录,并且我希望能够通过下一个/上一个链接导航到另一个。问题是,我不知道如何获取具有最近的较高ID的记录。 因此,当我有一个ID为4的记录时,我需要能够获取下一个现有记录,即7。查询可能看起来像 如何获取下一个/上一个记录而不获取整个结果集并手动进行迭代? 我正在使用MySQL 5。 问题答案: 下一个: 以前:

  • 我有一个实体类具有以下主键生成策略 我想知道是否有一种方法可以使用EntityManager向表生成器询问下一个值。

  • 问题内容: for (Entry entry : map.entrySet()) { Double key = entry.getKey(); String value = entry.getValue(); 迭代地图时是否可以知道上一个元素和下一个元素是什么? 问题答案: 您可以使用此方法,它的迭代器以升序顺序返回条目: 每个条目检索都是O(logN),因此对于完整迭代而言,这不是最有效的方法。

  • 问题内容: 说我有 ID的* 记录 * 我希望能够通过下一个/上一个链接导航到另一个。 问题是,我不知道 如何获取具有最近的较高ID的记录 。 因此,当我有一个 ID为ID 的记录时,我需要能够提取下一个现有记录,即为。 该查询可能看起来像 如何获取下一个/上一个记录而不获取整个结果集并手动迭代? 我正在使用MySQL 5。 问题答案: 下一个: 以前的:

  • 问题内容: 如何在MySQL中获取下一个ID以将其插入表中 问题答案: 使用从您的SQL查询。 要么 您也可以使用PHP来获取它。

  • 问题内容: 我已经制作了一个生成器来逐字读取文件,并且效果很好。 在列表中获取n个下一个值的最简单方法是什么? 问题答案: 用途: