Sql server 插入时:将表达式转换为数据类型int时发生算术溢出错误
我尝试创建第三个电话号码表,我编写了以下命令:Sql server 插入时:将表达式转换为数据类型int时发生算术溢出错误,sql-server,Sql Server,我尝试创建第三个电话号码表,我编写了以下命令: CREATE TABLE MYPHONE (EMPLOYEE_ID INT, PHONE_NUMBER INT) INSERT INTO MYPHONE VALUES (1 , 7894561230) 但是,当我尝试执行上一个INSERT命令时,出现了一个错误: Msg 8115,16级,状态2,第46行 将表达式转换为数据类型int时出现算术溢出错误 INT数据类型的允许范围为-2147483648到2147483647 您可以获得有关允许
CREATE TABLE MYPHONE (EMPLOYEE_ID INT, PHONE_NUMBER INT)
INSERT INTO MYPHONE
VALUES (1 , 7894561230)
但是,当我尝试执行上一个INSERT
命令时,出现了一个错误:
Msg 8115,16级,状态2,第46行将表达式转换为数据类型int时出现算术溢出错误
INT
数据类型的允许范围为-2147483648到2147483647
您可以获得有关允许范围的更多详细信息
您正在尝试插入超出该范围的内容。对于电话号码,最好选择
VARCHAR
数据类型。如果您仍然想选择数字,在这种情况下,请使用BIGINT
而不是INT
允许的INT
数据类型范围为-2147483648到2147483647
您可以获得有关允许范围的更多详细信息
您正在尝试插入超出该范围的内容。对于电话号码,最好选择
VARCHAR
数据类型。如果您仍然想选择数字,在这种情况下,请使用BIGINT
而不是INT
一个int
可能不是电话号码的最佳数据类型-你不需要对电话号码做任何算术运算,那么为什么要使用数字数据类型呢?将其存储为字符串(或SQL中的varchar
)
此外,如果您确实需要将值存储为
int
,则2147483647是最大值-任何更高的值都会“溢出”,因此您会得到错误。一个long
(或SQL中的bigint
)最多允许9223372036854775808的值。一个int
可能不是电话号码的最佳数据类型-你不需要对电话号码进行任何算术运算,那么为什么要使用数字数据类型呢?将其存储为字符串(或SQL中的varchar
)
此外,如果您确实需要将值存储为int
,则2147483647是最大值-任何更高的值都会“溢出”,因此您会得到错误。一个long
(或SQL中的bigint
)将允许最大值为9223372036854775808