用C#写了一个程序,功能是通过一个存储过程将文章存到数据库中。由于文章的文字比较多,所以开始时用了ntext的数据类型来存文章的内容。存的时候都没有发现问题,当添加了1千多篇文章之后,在“查询分析器”里面查看记录,发现有些文章没有问题,但有些文章就被截断了,而且截断的文章基本上只剩下200来字。
开始时怀疑是ntext类型的问题,于是将字段的数据类型换成nvarchar,长度设置为4000,结果还是一样,字符串会被自动截断。
在网上查了很多文章都没有提到这个问题,后来用程序来读数据库中文章的内容时,却惊奇发现文章的内容并没有被截断,而是完完整整的。
至此问题终于弄明白了,原来用SQLServer2000的“查询分析器”查看记录时,如果遇到ntext和比较长的nvarchar字段,它会作自动的截断以节省显示时间。而实际上数据是完整的!