要避免此问题,您必须先将字符串转换为varchar(max):
column = cast(other_column as varchar(max))
Run Code Online (Sandbox Code Playgroud)
这样,任何超过max(8000或4000,取决于版本)的字符串都将被截断为最大长度.
根据BoL(您指定的链接),解释存在差异.您可以在查询中使用的最大数量(n部分)是8000.出于存储目的,varchar(max)可以在磁盘上处理2GB.
它只是解释用于查询和存储目的的数据类型.所以底线,你只能在查询中使用8000个字符....