Sql server 当MSSQL中的表中的列的值达到最大值时会发生什么情况?

Sql server 当MSSQL中的表中的列的值达到最大值时会发生什么情况?,sql-server,max,Sql Server,Max,我的桌子 --------------------- id(int-PK-AI) | name --------------------- 1 | a 2 | b ... | max | x ??? | ... 当MSSQL表中列id(主键自动递增)的值大于最大值时会发生什么情况?错误或发生了什么?还有什么解决方案可以防止呢?当有人尝试执行插入时,生成的ID会溢出列的数据类型,他们会得

我的桌子

---------------------
id(int-PK-AI) | name
---------------------
1             | a
2             | b
...           |

max           | x
???           | ...

当MSSQL表中列id(主键自动递增)的值大于最大值时会发生什么情况?错误或发生了什么?还有什么解决方案可以防止呢?

当有人尝试执行
插入时,生成的ID会溢出列的数据类型,他们会得到一个错误(我相信是算术溢出),插入将失败


要修复此问题,请更改列的数据类型以支持更大的范围。64位整数和长十进制ID很难溢出。

没有插入,抛出错误消息。由数据库设计者来处理这个问题。备份旧数据或对id列使用
bigint

实际上很容易测试: