Почему функция длины данных сервера SQL Server удваивает длину моего поля?
Я хочу посчитать символы в текстовом поле. Следуя совету Пинала Дейва, я использую длину данных. Но эта функция, кажется, удваивает значение, которое я ищу. Когда я копирую значение в поле в слово и подсчитываю количество символов, я получаю 1502. Но когда я делаю
select datalength(result) from myTable
Я получаю значение 3004 символа.
Зачем?
1 ответ
Решение
Юникод - это два байта на символ. Ваш NText
поле является строкой Unicode. DataLength()
возвращает количество байтов, необходимое для хранения поля, Len()
возвращает количество символов