sum(DATALENGTH)返回"算术溢出"错误

QWE*_*QWE 2 t-sql sql-server sum function

我是SQL Server的新手,所以如果我的问题看起来太容易,请接受我的道歉.我试图找到一个解决方案,但到目前为止,我看不到任何我可以在查询中使用的内容.

我试图找到表中最大列的长度,我正在使用以下查询.

SELECT
    SUM(DATALENGTH([INSDetails])) as [INSDetails]
FROM 
    dbo.Contractors
Run Code Online (Sandbox Code Playgroud)

该表Contractors略高于8GB,行数超过30mln.INSDetails专栏是varchar(2048)

上面的查询非常适用于我的数据库中所有其他表的所有其他列,但是当我在Contractors表上运行它时会返回错误

消息8115,级别16,状态2,行26
算术溢出错误将表达式转换为数据类型int.

我知道当您尝试将某种数据类型的值转换为另一种数据类型时会出现此错误消息,但该值对于第二种数据类型而言太大.

你能帮我改写一下查询或建议替代方法来获得输出吗?

我读到有人建议使用CAST AS big int来解决这个问题,但我不确定如何将它包含在我的查询中.

任何建议将不胜感激.先感谢您.

pap*_*zzo 5

select sum(cast(len([INSDetails]) as bigint))
Run Code Online (Sandbox Code Playgroud)