Есть ли потери данных от преобразования varchar в nvarchar?
У меня есть столбец в SQL Server, который varchar(MAX)
, Столбец заполнен этим типом данных. Теперь я хочу преобразовать столбец в nvarchar(MAX)
принимать символы Юникода.
Есть ли потеря данных при преобразовании этого столбца из varchar(MAX)
в nvachhar(MAX)
?
1 ответ
Каждый персонаж, который может быть представлен в varchar
также представима в nvarchar
,
Единственная возможная проблема потери данных будет, если у вас есть какие-либо varchar(max)
значения, которые уже превышают 1 ГБ.
В большинстве сопоставлений nvarchar
использует 2 байта на символ и varchar
использует 1 байт на символ. Удвоение длины строки> 1 ГБ, очевидно, приведет к превышению 2 ГБ.
Даже тогда я ожидал бы сообщение об ошибке, а не тихое усечение, но, возможно, оно может молча завершиться с ошибкой при некоторых настройках, таких как ANSI_WARNINGS OFF
,