字符串或二进制数据将被截断SQL错误

Lio*_*ana 9 sql t-sql varchar

我有一个SQL存储过程,它接受VARCHAR(MAX)类型的参数.据我所知,根据我读到的所有内容,这些字符串的最大大小为2GB: MSDN

出于某种原因,当传递大于8KB的字符串时,我得到:

字符串或二进制数据将被截断.

为什么我会收到此错误消息,如何解决?

kni*_*ttl 8

要避免此问题,您必须先将字符串转换为varchar(max):

column = cast(other_column as varchar(max))
Run Code Online (Sandbox Code Playgroud)

这样,任何超过max(8000或4000,取决于版本)的字符串都将被截断为最大长度.


Mar*_*ers 8

根据BoL(您指定的链接),解释存在差异.您可以在查询中使用的最大数量(n部分)是8000.出于存储目的,varchar(max)可以在磁盘上处理2GB.

它只是解释用于查询和存储目的的数据类型.所以底线,你只能在查询中使用8000个字符....