Reset Identity Column Value in SQL Server
If you are using an identity column on your SQL Server tables, you can set the next insert value to whatever value you want. An example is if you wanted to start numbering your ID column at 1000 instead of 1.
It would be wise to first check what the current identify value is. We can use this command to do so:
DBCC CHECKIDENT (’tablename’, NORESEED)
For instance, if I wanted to check the next ID value of my orders table, I could use this command:
DBCC CHECKIDENT (orders, NORESEED)
To set the value of the next ID to be 1000, I can use this command:
DBCC CHECKIDENT (orders, RESEED, 999)
Note that the next value will be whatever you reseed with + 1, so in this case I set it to 999 so that the next value will be 1000.
Another thing to note is that you may need to enclose the table name in single quotes or square brackets if you are referencing by a full path, or if your table name has spaces in it. (which it really shouldn’t)
DBCC CHECKIDENT ( ‘databasename.dbo.orders’,RESEED, 999)

Daily Email Updates
You can get our how-to articles in your inbox each day for free. Just enter your name and email below:


wonderful..
That’s all I need, Thanks in advanced!…
Have a nice weekend..
Hey,,
thus is what inwas looking for..
gee thankss
thanks!
Mitico!
Thanks a whole lot!
great concise page. thanks. way easier than ms help files.
This is great. But how to make the following code work:
declare @seqno int
set @seqno = DBCC CHECKIDENT (orders, NORESEED)
DBCC CHECKIDENT ( ‘databasename.dbo.orders’,RESEED, @seqno)
I created a script that will do what you want, lakshmi. Just replace MyId and mytbl below:
DECLARE @MaxId INT
SELECT @MaxId = MAX( MyId )
FROM mytbl (NOLOCK)
PRINT ‘Resetting Identity value to : ‘ + CONVERT( VARCHAR, @MaxId )
PRINT ”
DBCC CHECKIDENT (’mytbl’, RESEED, @MaxId)
PRINT ”
– Verify
DBCC CHECKIDENT (’mytbl’, NORESEED)
Thanks Geek – worked like a charm
Thanks a lot!!!!!!!!!
Useful Stuff…………
Thanks a lot
i was searching for this
Thanks a lot. For me, if I use the value of 0 to reseed, sql server 2005 didn’t start from 1, but actually from 0. May be the +1 statement is not correct?
Thank you for information. It was usefull.
Thanks
Brilliant, thanks
Great, thanks. Strange thing though. It worked exactly as advertised testing in SQL Server Management Studio Express with SQL Server 2005. But when I coded it up in Java (using sqljdbc) running against the same database, the next value was not reseed + 1, but the reseed value itself (as haridsv found).