所以我在SQLServer 2005数据库中有一个存储过程,该数据库从表中检索数据,将数据格式化为字符串并将其放入varchar(max)输出变量。
然而,我注意到虽然len(s)报告字符串是> 8,000,我收到的实际字符串(通过SQLServer输出窗口)总是被截断为< 8,000个字节。
有谁知道这可能是什么原因?非常感谢。
答案 0 :(得分:7)
输出窗口本身很可能会截断您的数据。变量本身保存数据,但窗口仅显示前X个字符。
如果您要从例如.NET应用程序中读取该输出变量,您将看到完整的值。
答案 1 :(得分:5)
您是在谈论SQL Server Management Studio吗?如果是这样,有一些选项可以控制返回多少个字符(我只有2008在我面前,但设置在工具|选项|查询结果| SQL Server |结果到网格|检索的最大字符和结果到文本|每列中显示的最大字符数。
答案 2 :(得分:0)
数据就在那里,但是管理工作室没有显示所有数据。
在这种情况下,我使用MS Access链接到表并读取数据。很遗憾您必须使用Access来查看数据而不是Management Studio或查询分析器,但似乎是这种情况。
答案 3 :(得分:0)
但是,我注意到虽然len(s)报告的字符串是> 8000
我已经陷入了SQL Studio问题:)但不是varchar 8,000字节的最大长度,或者nvarchar(unicode)的最大长度为4,000。
列数据类型实际上是文本还是 ntext ,您是否有可能转换为 varchar ?