我在SQL Server中有一个varchar(MAX)
列。该列已填充该数据类型。我现在想要将列转换为nvarchar(MAX)
以接受unicode字符。
将此列从varchar(MAX)
转换为nvachhar(MAX)
时是否有任何数据丢失?
答案 0 :(得分:4)
varchar
中可以表示的每个字符也可以在nvarchar
中表示。
唯一可能的数据丢失问题是,如果您有任何varchar(max)
值已经大于1GB。
在大多数排序规则中nvarchar
每个字符使用2个字节,varchar
每个字符使用1个字节。加倍字符串的字符串长度> 1 GB显然会超过2GB的限制。
即便如此,我还是会期待一条错误消息而不是静默截断,但可能会在ANSI_WARNINGS OFF
等某些设置下无声地失败。