What happens to the primary key Id when it goes over the limit?
Use BIGINT and you likely will never reach the limit.
You get an error if the identity
would exceed the bounds of the datatype making the rest of your question moot. You can see this by
CREATE TABLE #T
(
id INT IDENTITY(2147483647,1)
)
INSERT INTO #T
DEFAULT VALUES
INSERT INTO #T
DEFAULT VALUES /*Arithmetic overflow error converting IDENTITY to data type int.*/
GO
SELECT * FROM #T
DROP TABLE #T
This is a comment I found on a similar question and I will leave it here for future users who might be worried about overflow of a BIGINT.
If you use a BIGINT IDENTITY starting at 1, and you insert one thousand rows every second, you need a mind-boggling 292 million years before you hit the 922 quadrillion limit