日期:2014-05-16 浏览次数:20415 次
1. 原来的数据类型是 nvarchar(255),后来知道255是字符长度,觉得用不了那么多,想改变成10,请问,会丢失数据吗?(当然字段中没有没有超过10的字符长度)
不会
2. 另问,如果扩大这个数字,比如从255改成4000,是否会改变原来的数据呢?谢谢!
不会,nvarchar本身就是变长的,数据没有变化,长度实际上也没有变化
3. 如果字段中的字符长度没有问题,那么修改该字段的数据类型,在nvarchar(n)、nvarchar(max)、nText 之间切换,有没有问题啊?
修改字段的长度,在上面的条件下,不会有啥变化,变化的是针对后续数据的长度,以及前台应用程序的匹配。
另外,ntext 和nvarchar(max) 是有差别的。
NTEXT
默认情况下,NTEXT将文本数据存储在LOB结构中, 在表结构中只存储指针,指针指向该数据在LOB中的存储位置。
NVARCHAR(MAX)
默认情况下,不超过8,000字节的数据直接存储在表结构中,超过的才和NTEXT一样将数据存储在LOB结构中。
最后,NTEXT将在以后版本的SQL SERVER中不被支持,微软的文档中建议用NVARCHAR(MAX)取代NTEXT。