如果你添加一条新记录,然后删除该记录,然后一遍又一遍地添加它,假以时日,迟早,当你添加新记录的整数主键id时,它最终会超过20亿。
现在会发生什么? SQL Server会重新将主键id从1开始吗?或-1?
如果循环 40 亿次会发生什么? SQL Server 如何知道不替换以前的数据?
最佳答案
如果身份
超出数据类型的范围,您会收到错误消息,从而使问题的其余部分变得毫无意义。您可以通过以下方式看到这一点
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
关于sql-server - 当主键 Id 超过限制时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305232/