Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to get the next autoincrement value in sql

I am creating a winform application in c#.and using sql database.

I have one table, employee_master, which has columns like Id, name, address and phone no. Id is auto increment and all other datatypes are varchar.

I am using this code to get the next auto increment value:

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();

I am displaying on a textBox.

But when last row from table is deleted, still I get that value which is recently deleted in textbox

How should I get the next autoincrement value?

like image 584
siddharth Avatar asked Jul 13 '12 10:07

siddharth


2 Answers

To get the next auto-increment value from SQLServer :

This will fetch the present auto-increment value.

SELECT IDENT_CURRENT('table_name');

Next auto-increment value.

SELECT IDENT_CURRENT('table_name')+1; 

------> This will work even if you add a row and then delete it because IDENT_CURRENT returns the last identity value generated for a specific table in any session and any scope.

like image 110
patel.milanb Avatar answered Sep 24 '22 17:09

patel.milanb


try this:

SELECT IDENT_CURRENT('tbl_name') + IDENT_INCR('tbl_name');
like image 22
Mehdi Esmaeili Avatar answered Sep 22 '22 17:09

Mehdi Esmaeili