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
我在这里的理解中缺少什么?它似乎根本不像我预期的那样表现?