如何在 SQL 列中保存超过 8000 个字符

How to save more than 8000 characters in a SQL column

我在 table 测试中有一列 AgentName,其中包含更多字符。我得到的长度差异如下所示。

如果您看到 "C" ,我已经复制了 @TMP 的输出并在我认为应该与 B 相同的地方执行 DataLength。

任何帮助将不胜感激。

那是因为 SQL Server Management Studio 没有呈现整个长度,因此您处理的细节较少。如果你想把整个文本转换成 XML.

而是SELECT @TMP做:

SELECT CAST(@TMP AS XML)

然后打开这个值,复制它并检测它的长度。

您可以将列定义为VARCHAR(MAX),支持超过8000个字符。

CREATE TABLE Test
(
   B VARCHAR(MAX),
   C VARCHAR(MAX)
)

理想情况下,当您从结果网格复制值时,将根据您在 SSMS 中的查询选项设置检索数据(查询 -> 查询选项 -> 结果 -> 网格 -> 检索的最大字符数)

如下结果:默认为 65535,从结果网格复制的数据长度仅为 65535

更新网格的选项值之后: