English 中文(简体)
为什么varchar的最大长度小于8,000字节?
原标题:
  • 时间:2009-03-26 18:24:56
  •  标签:

所以我在一个SQLServer 2005数据库中有一个存储过程,该存储过程从表中检索数据,格式化数据为字符串并将其放入一个varchar(max)输出变量中。

然而,我注意到尽管len(s)报告字符串> 8,000,但我收到的实际字符串(通过SQLServer输出窗口)总是被截断为< 8,000个字节。

有人知道这可能的原因吗?非常感谢。

最佳回答

输出窗口本身很可能截断了您的数据。变量本身保存了数据,但窗口只显示了前X个字符。

如果您从.NET应用程序中读取该输出变量,您将看到完整的值。

问题回答

你说的是在SQL Server管理工具中吗?如果是的话,有一些选项可以控制返回的字符数(我只在我的电脑上有2008版,但设置在 工具|选项|查询结果|SQL Server|结果到网格|最大检索字符数 和 结果到文本|每列显示的最大字符数 中)。

数据都在,但是管理工具没有显示全部的数据。

在这种情况下,我使用MS Access连接到表并读取数据。很遗憾您必须使用Access查看数据,而不是Management Studio或Query Analyzer,但这似乎就是事实。

然而,我注意到尽管len(s)报告该字符串> 8,000

我也遇到了SQL Studio的问题:)但是varchar的最大长度不是8,000字节,nvarchar(unicode)的最大长度是4,000吗?

有没有可能列的数据类型实际上是文本ntext,并且您正在转换为 varchar





相关问题
热门标签