sql-server - 从 varchar 转换为 nvarchar 是否有数据丢失

标签 sql-server encoding varchar nvarchar

我在 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/

相关文章:

Mysql Varchar 到 GMT Date 时间值的转换

sql-server-2008 - varchar(max) 无处不在?

mysql - Mysql 上的 Varchar 问题 2147483647

sql - 为表格中的每一行选择上一个日期

c++ - 使用c++ ADO连接sql server 2017失败但返回null错误信息

sql-server - 如何将 .sql 文件导入 SQL Server Express

sql-server - 什么工具可以从 SQL Server 分层数据生成图表?

xml - 是什么导致我的 XML 中断?

python - 将 base64 字符串解码为十进制字符串

python - python 中的 iso-8859-1 和 utf8