• There are two things to understand about identity.

    1. It involves the "next" assigned value for a column.

    2. It has nothing to do with existing values. It doesn't ensure uniqueness, it doesn't change them, check them, anything.

    Try this:

    CREATE TABLE MyTable

    ( id INT IDENTITY(1,1)

    )

    GO

    INSERT mytable DEFAULT VALUES

    GO

    SELECT * FROM mytable

    GO

    DBCC CHECKIDENT( mytable, RESEED, 0)

    GO

    INSERT mytable DEFAULT VALUES

    GO

    SELECT * FROM mytable

    GO

    DROP TABLE dbo.MyTable

    You can repeat the reseed and insert over and over and you'll get a table of 1s.

    If you reseed your current table at 0, you'll start inserting the next rows with an identity of 1, then 2, then 3. If you have rows in those tables with those identity values, then you will have duplicates. If you have an index that makes the identity unique, then you won't be able to insert duplicate rows and you'll get errors.