一尘不染

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

sql

我正在用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上显示。

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

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


阅读 135

收藏
2021-03-10

共1个答案

一尘不染

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

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

SELECT IDENT_CURRENT('table_name');

下一个自动增量值。

SELECT IDENT_CURRENT('table_name')+1;

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

2021-03-10