PRINT Convert(VarChar(Max),Replicate('1234567890 ',1000))
返回窗口7,997个字符。SQL Server 2008 VarChar(Max)只返回8000个字符。为什么?
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
什么我在这里认识失踪?它似乎并不像我所期望的那样行事?
默认情况下,它会截断为8K,但您可以将结果放大。即使用varchar(max)作为OP的做 – scsimon
演员不是结果,而是参数 –
是的......你在我的评论后编辑了你的文章。 – scsimon