如何在 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
更新网格的选项值之后:
我在 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
更新网格的选项值之后: