я запускаю этот запрос в SQL Server 2008
declare @a varchar(1) select @a = 22 select @a
это вернуть это
*
почему этот запрос дает такой результат?
Вы преобразуете 2-символьное число в 1-символьное поле.
Не подходит.
SQL указывает, что данные отсутствуют. В противном случае он будет отображать только 2, и вы не узнаете, было ли это полное значение или нет.
2
Используйте следующий код:
declare @a varchar(2) select @a = 22 select @a
недостаточно места было обнаружено -
declare @a varchar(2) select @a = 242 select @a
это также будет делать