Discussion:
Оператор space в MSSQL Server 2000
(слишком старое сообщение для ответа)
Tatiana Guskina
2006-02-28 14:44:04 UTC
Permalink
Доброго времени суток.

В запросе прибавляю к значению строкового поля спереди разное количество
пробелов. Для пробелов использую функцию space.

Если таблица постоянная - все работает.
Если таблица временная(# или ##) или табличная переменная, функция space
возвращает не больше одного пробела, чтобы ей параметром не передавалось.

Можно ли это вылечить? Hе очень хочется создавать лишние постоянные таблицы.

Заранее спасибо.
Адрес в шапке не работает. Писать можно на ***@newmail.ru

"Счастье - это когда у тебя болел зуб и вдруг перестал" (с) И.Грекова
Dmitry Novikov
2006-03-01 09:54:11 UTC
Permalink
Всем привет!
Post by Tatiana Guskina
В запросе прибавляю к значению строкового поля спереди разное количество
пробелов. Для пробелов использую функцию space.
Если таблица постоянная - все работает.
Если таблица временная(# или ##) или табличная переменная, функция space
возвращает не больше одного пробела, чтобы ей параметром не передавалось.
Это как это? Пример можно? У меня все нормально:
declare @t table (s varchar(10))
insert @t values ('456')
select space(3) + s from @t
-------------
456

Три пробела наличествуют.

С наилучшими пожеланиями, Дмитрий.
dim_nУБРАТЬrnivcРУССКИЕkisБУКВЫru
Tanya L Gouskina
2006-03-24 14:17:05 UTC
Permalink
DN> Это как это? Пример можно? У меня все нормально:

Дело оказалось в конкретной базе. Точнее в collatione ее. Я после Ваш пример
запустила машинально в мастере, и потом уже пробовала в разных базах.
Оказалось, что space отказывается работать в том режиме, который я Вам
описала, только в одной той самой базе, в которой я тогда работала.
Стали искать "10 отличий" от всех прочих баз. Hашли! Создали тестовую базу
с таким же collation как в "дефектной". Версия подтвердилась.

"Счастье - это когда у тебя болел зуб и вдруг перестал" (с) И.Грекова.
Loading...