代码的问题不是存储值的字段的数据类型,而是存储在一起的值的类型。
的类型
b.Header不是,
text而是
varchar用作整个表达式的类型。当字符串连接在一起时,结果将被截断以适合一个
varchar值。
如果将第一个字符串转换为
text,则整个表达式将获得该类型,并且长度可能超过8000个字符:
SET [File] = cast(b.Header as text) + CHAr(13) + CHAr(10) + d.Detail + c.Trailer + CHAr(13) + CHAr(10) + CHAr(26)
自然,您应该过渡到使用新类型
varchar(max)而不是
text,但这不是造成问题的原因。



