运行此命令时,出现 SQL 服务器错误
“将表达式转换为数据类型 int 时出现算术溢出错误”。
SELECT sum(size) FROM [dbname]..sysfiles sf, [dbname]..sysfilegroups sfg WHERE sfg.groupname = 'PRIMARY' AND sf.groupid = sfg.groupid
Run Code Online (Sandbox Code Playgroud)
因为文件大小小于 16TB,bigint
所以不需要。我仍然尝试执行 cast(size as bigint
),错误仍然存在。
SELECT sum(cast(size as bigint)) FROM [dbname]..sysfiles sf, [dbname]..sysfilegroups sfg WHERE sfg.groupname = 'PRIMARY' AND sf.groupid = sfg.groupid
Run Code Online (Sandbox Code Playgroud)
那么问题来了,除了超过16TB的文件大小限制之外,出现算术溢出错误的原因是什么?