SQL Server报错:将表达式转换为int数据类型时发生算术溢出
SQL插入手机号报错的修复方案
你这段SQL执行报错的核心原因是PHONE字段的Int类型无法容纳插入的手机号值。多数数据库的32位有符号Int最大值仅为2147483647,而你插入的9415536635远超这个范围,导致数值溢出错误。
修复方案
这里提供两种可行的修改方式,推荐第一种:
方案1:将PHONE改为VARCHAR类型(推荐)
手机号无需参与数值计算,用字符串类型存储更合理,还能兼容带前缀(如+86)的手机号场景:
CREATE TABLE Student_details11 ( ROLL_NO Int, NAME VARCHAR(25), ADDRESS VARCHAR(25), PHONE VARCHAR(15), AGE Int ); INSERT INTO Student_details11 (ROLL_NO, NAME, ADDRESS, PHONE, AGE) VALUES (1, 'Ram', 'Delhi', '9415536635', 24)
方案2:将PHONE改为BIGINT类型
如果坚持用数值类型存储,可改用范围更大的BIGINT(支持到9223372036854775807):
CREATE TABLE Student_details11 ( ROLL_NO Int, NAME VARCHAR(25), ADDRESS VARCHAR(25), PHONE BIGINT, AGE Int ); INSERT INTO Student_details11 (ROLL_NO, NAME, ADDRESS, PHONE, AGE) VALUES (1, 'Ram', 'Delhi', 9415536635, 24)
内容的提问来源于stack exchange,提问作者nagaraju naidu
相关产品推荐
相关产品推荐

