![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование BLOBa из одной таблицы в другую [MSSQL]
-=VaaL=- © (2004-05-14 11:41:00)Собственно простой query:
UPDATE TEMPLATES SET
T_HTML = (SELECT S_HTML FROM SHOPS WHERE S_ID = 2)
здесь TEMPLATES.T_HTML и SHOPS.S_HTML два NTEXT поля.
Сервер ругается вот так:
Server: Msg 279, Level 16, State 3, Line 4
The text, ntext, and image data types are invalid in this subquery or aggregate expression.
Тоесть напрямую блобы перекидывать не разрешает. Встречался ни кто-нибуть с этим и как это решал? Идеальным для меня было бы решение на чистом T-SQL. Понимаю что можно пихать этот блоб во временную таблицу кусками по 4000 символов и потом это все переливать в целевую таблицу... да вот только, авось есть решение попроще?
Заранее спасибо.
-=VaaL=- (2004-05-14 12:14:00) [1]sniknik © (14.05.04 11:58) [3]
Премного благодарен!!!! Чуть переделал и все пошло.
Спасибо всем принявшим участие, Вопрос снят.
Курдль (2004-05-14 12:10:00) [2]А если FIRST попробовать?
-=VaaL=- (2004-05-14 12:01:00) [3]Дык насколько я помню он ругается только если действительно подзапросом вернулось более одной записи, а так запросы такого рода проходят на ура. кроме того в ошибке сказано что агрегатные выражения тоже не проходят. Скорее всего идет ошибка именно изза БЛОБов. Например запрос типа
SELECT S_HTML FROM SHOPS WHERE S_ID = 2 GROUP BY S_HTML
Возвращает ошибку:
The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.
Или я не про те агрегаты использую? Помоему другие тут никак не катят :) кароче кроме IS NULL и LIKE ничего с блобами использовать нельзя получается
sniknik (2004-05-14 11:58:00) [4]попробуй тоже самое с присоедененной таблицей (INNER JOIN)
~
UPDATE a SET a.T_HTML=b.T_HTML FROM TEMPLATES a INNER JOIN SHOPS b ON a.S_ID=b.S_ID WHERE a.S_ID=2
пройдет?
Reindeer Moss Eater (2004-05-14 11:52:00) [5]А чем конструкция MSSQL "update from" не подходит?
Курдль (2004-05-14 11:47:00) [6]
> Тоесть напрямую блобы перекидывать не разрешает
Он не разрешает подобное использование субзапроса.
Если есть возможность возврата НД более, чем с одной записью.
Пользуйтесь агрегатом!