That error should only be seen when the next identity is beyond the integer limit of 2147483647.
As noted in comments, the next identity is not necessarily Max(id)+1.
It could be that someone has accidentally changed your seed value to the upper limit inadvertently.
Issue this command to check seed values:
DBCC CHECKIDENT (tableName, NORESEED)
You should see something like this:
Checking identity information: current identity value '1109', current
column value '1109'.
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
If the values returned are not the same, it may pay to re-seed the identity... if the first value returned is at the limit, that is why you're getting the error, and you definitely need to reseed.
To re-seed you'd use the following to set the identity to the max(id)+1.
DBCC CHECKIDENT (tableName, RESEED)
If you wish to specify the next seed value, you can use:
DBCC CHECKIDENT (tableName, RESEED, 123456)
NB: 123456 is the current seed, so the next insert will get 123457.
Please read this msdn article before re-seeding, and understand what the implications may be for your business and data.
insert into table (from_zip, to_zip) values ('98565', '96552')Why are you trying to control the value for identity that the database sets?