我在表Test中有一个列AgentName,其中包含更多字符。我的长度有所不同,如下所示。
如果看到“ C”,我已经复制了@TMP的输出并执行了DataLength,我认为它应该与B相同。
任何帮助将不胜感激。
这是因为SQL Server Management Studio并未呈现整个长度,因此您无需太多细节。如果要获取整个文本,请将其强制转换为XML
。
代替SELECT @TMP
这样做:
SELECT CAST(@TMP AS XML)
然后打开该值,将其复制并检测其长度。
,理想情况下,当您从结果网格复制值时,数据将根据您在 SSMS 中的查询选项设置进行检索(查询 -> 查询选项 -> 结果 -> 网格 -> 检索的最大字符数)
如下结果:默认为 65535,从结果网格复制的数据长度仅为 65535
,您可以将列定义为VARCHAR(MAX)
,该列支持8000多个字符。
CREATE TABLE Test
(
B VARCHAR(MAX),C VARCHAR(MAX)
)