是否有从varchar转换为nvarchar

时间:2015-09-04 20:53:14

标签: sql-server encoding varchar nvarchar

我在SQL Server中有一个varchar(MAX)列。该列已填充​​该数据类型。我现在想要将列转换为nvarchar(MAX)以接受unicode字符。

将此列从varchar(MAX)转换为nvachhar(MAX)时是否有任何数据丢失?

1 个答案:

答案 0 :(得分:4)

varchar中可以表示的每个字符也可以在nvarchar中表示。

唯一可能的数据丢失问题是,如果您有任何varchar(max)值已经大于1GB。

在大多数排序规则中nvarchar每个字符使用2个字节,varchar每个字符使用1个字节。加倍字符串的字符串长度> 1 GB显然会超过2GB的限制。

即便如此,我还是会期待一条错误消息而不是静默截断,但可能会在ANSI_WARNINGS OFF等某些设置下无声地失败。