sql-server - 当主键 Id 超过限制时会发生什么?

标签 sql-server sql-server-2005 sql-server-2008

如果你添加一条新记录,然后删除该记录,然后一遍又一遍地添加它,假以时日,迟早,当你添加新记录的整数主键id时,它最终会超过20亿。

  1. 现在会发生什么? SQL Server会重新将主键id从1开始吗?或-1?

  2. 如果循环 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/

相关文章:

sql-server - 解释 SQL Server 语法错误

SQL Server 查看主键

sql - 如何获取调用 SQL 代理作业的用户?

sql-server - 如何使用内连接删除前(N)行?

sql - 有没有一种优雅的方法来反转 SQL 插入语句中的位值?

sql - 如何更新所选数据库中所有过程中公共(public)参数的数据类型

sql - 从 union 语句中删除默认 order by

c# - EntityType 没有定义键

sql-server-2005 - 应用层数据库事务的最佳实践

sql-server - 为什么全文索引选项呈灰色?