Les*_*nes 2 sql-server encoding varchar nvarchar
我在 SQL Server 中有一个列是varchar(MAX). 该列已填充该数据类型。我现在想将列转换为nvarchar(MAX)为接受 unicode 字符。
是否有任何数据丢失,当我从转换此列varchar(MAX)来nvachhar(MAX)?
每个可以表示的字符也可以表示varchar为nvarchar。
唯一可能的数据丢失问题是如果您有任何 varchar(max)已经大于 1GB 的值。
在大多数排序规则中,nvarchar每个字符使用 2 个字节,并且varchar使用 1 个字节。将大于 1 GB 的字符串的字符串长度加倍显然会超过 2GB 的限制。
即便如此,我还是会期待一条错误消息,而不是静默截断,但在某些设置(例如ANSI_WARNINGS OFF.