本文主要是介绍SQL Server报错:Arithmetic overflow error converting expression to data type int.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题描述
sql server(sql dw)查询一张表数据个数,使用count报错
select count(*) from test.test_t;
然后报错:
SQL 错误 [8115] [S0002]: Arithmetic overflow error converting expression to data type int.
二、问题原因
数据量比较大,直接用count查询结果是int类型,超过int的范围。
tinyint:从0到255 之间的整数
smallint:从- 215(-32768)到215(32767)之间的整数
int:从- 231(-2147483648)到231(2147483647)之间的整数
bigint:从 -263 (-9223372036854775808) 到263-1 (9223372036854775807) 的整型数据(所有数字)
decimal:从-1038-1到1038-1的固定精度和范围的数值型数据
三、解决办法
微软sql 提供了count_big的方式计数
select count_big(*) from test.test_t;
这篇关于SQL Server报错:Arithmetic overflow error converting expression to data type int.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!