我在 SQL Server 中有一列是 varchar(MAX)
。该列已使用该数据类型填充。我现在想将该列转换为 nvarchar(MAX)
以接受 unicode 字符。
当我将此列从 varchar(MAX)
转换为 nvachhar(MAX)
时,是否有任何数据丢失?
最佳答案
每个可以在 varchar
中表示的字符也可以在 nvarchar
中表示。
唯一可能的数据丢失问题是,如果您有任何已经大于 1GB 的 varchar(max)
值。
在大多数归类中,nvarchar
每个字符使用 2 个字节,而 varchar
每个字符使用 1 个字节。将大于 1 GB 的字符串的字符串长度加倍显然会使您超过 2GB 的限制。
即便如此,我也希望收到错误消息而不是静默截断,但它可能会在某些设置下静默失败,例如 ANSI_WARNINGS OFF
。
关于sql-server - 从 varchar 转换为 nvarchar 是否有数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406436/