Форум: "Базы";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизПеременные типа image в скрипте Найти похожие ветки
← →
Ega23 © (2006-01-30 19:08) [0]Есть проблема.
Имеется следующая временная таблица:
Create Table #Temp_AccMetPL
(
ObjID int,
ObjOwner int,
ObjNam varchar(64),
ObjImg image,
HasOperMet tinyint,
HasAdmMet tinyint
);
Надо обойти её курсором по ObjID и сделать Update для поля ObjImg. А точнее - взять его из другой таблицы.
Делаю так:
Declare Cur Cursor Local Static for
Select ObjId from #Temp_AccMetPL;
Open Cur;
While (0=0)
begin
Fetch Next from Cur into @x;
if @@FETCH_STATUS <> 0 BREAK;
Update #Temp_AccMetPL Set
ObjImg=(
Select C.CLSImg
from Classes C, ObjectClasses OC
where C.CLSID=OC.CLSID and OC.ObjID=@x
)
where ObjID=@x;
end;
Close Cur;
Deallocate Cur;
Всё бы ничего, но:
The text, ntext, and image data types are invalid in this subquery or aggregate expression.
Локальную-же переменную типа image заводить нельзя.
Что делать?
← →
Nikolay M. © (2006-01-30 20:22) [1]А нафиг здесь вообще курсор?
UPDATE
#Temp_AccMetPL
SET
ObjImg = C.CLSImg
FROM
#Temp_AccMetPL ampl,
Classes C,
ObjectClasses OC
WHERE
C.CLSID = OC.CLSID
AND OC.ObjID = ampl.ObjID
← →
Ega23 © (2006-01-31 08:56) [2]
> А нафиг здесь вообще курсор?
Коля, спсибо, сам вчера допёр. Просто у меня тырнет в 20:00 отрубают... :о)
Хотя курсор всё равно нужен. Правда для других целей.
← →
Nikolay M. © (2006-01-31 10:08) [3]Да не за что, собственно.
Но я все равно за то, чтобы обходиться без курсоров - уж очень они ресурсоемкие. В 99% случаев достаточно автоинкрементного ID и обычного цикла
WHILE (@ID IS NOT NULL)
...
SELECT
@ID = (SELECT MIN(ID) FROM #tab WHERE ID > @ID)
← →
Polevi © (2006-01-31 14:42) [4]>Nikolay M. © (31.01.06 10:08) [3]
ну ты это зависит от колва данных и запроса к ним
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c