Почему функция длины данных сервера SQL Server удваивает длину моего поля?

Я хочу посчитать символы в текстовом поле. Следуя совету Пинала Дейва, я использую длину данных. Но эта функция, кажется, удваивает значение, которое я ищу. Когда я копирую значение в поле в слово и подсчитываю количество символов, я получаю 1502. Но когда я делаю

select datalength(result) from myTable 

Я получаю значение 3004 символа.

Зачем?

1 ответ

Решение

Юникод - это два байта на символ. Ваш NText поле является строкой Unicode. DataLength() возвращает количество байтов, необходимое для хранения поля, Len() возвращает количество символов

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