gpt4 book ai didi

SQL Server 2008 VarChar(Max) 仅返回 8000 个字符。为什么?

转载 作者:行者123 更新时间:2023-12-03 02:16:09 27 4
gpt4 key购买 nike

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

我在这里缺少什么理解?它的行为似乎根本不像我预期的那样?

最佳答案

复制函数的限制是 8000 个字符,除非参数的类型为 varchar(max)/nvarchar(max)

https://msdn.microsoft.com/en-us/library/ms174383.aspx

If string_expression is not of type varchar(max) or nvarchar(max), REPLICATE truncates the return value at 8,000 bytes. To return values greater than 8,000 bytes, string_expression must be explicitly cast to the appropriate large-value data type.

关于SQL Server 2008 VarChar(Max) 仅返回 8000 个字符。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com