Есть ли потери данных от преобразования 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,

Другие вопросы по тегам