Subscribe to How-To Geek

Recommended: Click Here to Run a Free Scan for Common PC Errors   [Sponsored Link]

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)

The Geek is the founder of How-To Geek and a geek enthusiast. When he's not coming up with great how-to articles, he's probably writing at his personal blog. This article was written on 03/7/07 and tagged with: Database, SQL Server

Comments (8)

  1. Rukowen

    wonderful..
    That's all I need, Thanks in advanced!…
    Have a nice weekend..

  2. Himani

    Hey,,
    thus is what inwas looking for..
    gee thankss

  3. kevin

    thanks!

  4. Ste

    Mitico!

  5. Dominic Herard

    Thanks a whole lot!

  6. Nick

    great concise page. thanks. way easier than ms help files.

  7. lakshmi

    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)

  8. tdow

    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)


Leave a Comment




Leave your friendly comment here. If you have a computer help question, leave it on the forums instead.

Note: Your comment may not show up immediately on the site.

Copyright © 2006-2008 HowToGeek.com. All Rights Reserved.