PRINT Convert(VarChar(Max),Replicate('1234567890 ',1000))
这将返回窗口 7,997 个字符。
SELECT Convert(VarChar(Max),Replicate('1234567890 ',1000))
这将返回到网格中7,996个字符。打印窗口中的额外字符是CRLF。我的选项如下: 工具 → 选项 → 查询结果 → 结果转为文本 → 每列显示的最大字符数 = 8192
因此,我期望在网格中返回8,192个字符,并期望在我的窗口中返回11,001个字符。
然后有这个测试:
DECLARE @VarCharMax VarChar(Max)
SET @VarCharMax = Replicate('123456',2000)
SELECT Right(@VarCharMax,3) -- returns 456
SELECT Right(Left(@VarCharMax,8000),3) -- returns 456
SELECT Right(Left(@VarCharMax,7999),3) -- returns 456
SELECT Right(Left(@VarCharMax,7998),3) -- returns 456
SELECT Right(Left(@VarCharMax,7997),3) -- returns 345
SELECT Right(Left(@VarCharMax,7996),3) -- returns 234
我在理解这里缺少了什么?它的行为似乎完全不符合我的预期?