Pull to refresh

Comments 3

Добрый день.

Спасибо за информацию об узких местах неявного преобразования типов. Никогда не использовал такие длинные значения, но буду иметь ввиду.

А почему Вы используете термин "константа", а не переменая? В T-SQL вроде вообще нет такого понятия, по крайней мере, в традиционном понимании (неизменяемое значение).

Потому что именно константы, в зависимости от их длины в байтах, могут автоматически неявно превращаться их VARCHAR(n) или NVARCHAR(n) в VARCHAR(MAX) или NVARCHAR(MAX).

Например, был у нас динамический SQL запрос в юникодной строке длинней 4000 символов (8000 байт). Всё замечательно работало. Затем решили вставить в его середину какую-то переменную или параметр функции типа NVARCHAR(n). В результате эта строка распалась на две короче 4000 символов, которые тоже стали NVARCHAR(n). Результат конкатенации тоже сразу превратился из NVARCHAR(MAX) в NVARCHAR(n) и обрезался до 4000 символов. Быстро найдёте эту ошибку? Сразу поймёте как её исправить?

В T-SQL вроде вообще нет такого понятия

Это можно перевести как-то иначе?

Действительно, константы. Первый раз вижу описание этой сущности для T-SQL.

Sign up to leave a comment.

Articles