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
。实际上很容易测试: