Я пытаюсь Переберите в таблице с помощью курсора:SQL Server - Cursor
DEClARE @ProjectOID as nvarchar (100)
DECLARE @TaskOID as nvarchar (100)
DECLARE TaskOID_Cursor FOR
SELECT TaskOID FROM ProjectOID_Temp
OPEN TaskOID_Cursor
FETCH NEXT FROM TaskOID_Cursor INTO @TaskOID
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT t1.OID as taskResourceOID, t2.OID as EvUserOID
FROM (select OID, resourceOID from taskresourcehours
where projecttaskoid = @TaskOID) as t1,
(
select OID, workerOID
from Evuser
where workerOID in
(select resourceOID from taskresourcehours where projecttaskoid = @TaskOID)
) as t2
WHERE t1.resourceOID = t2.workerOID
FETCH NEXT FROM TaskOID_Cursor
INTO @TaskOID
END
CLOSE TaskOID_Cursor
DEALLOCATE TaskOID_Cursor
Это выше возвращает taskResourceOID и EvUserOID. Если мне нужно вывести таблицу с помощью @TaskOID и соответствующего taskResourceOID и EvUserOID, что это лучший способ сделать это?
у вас есть синтаксис ERR или в 'DECLARE TaskOID_Cursor FOR', отсутствующий тип – Matten
Почему вы используете курсоры вместо обычного соединения, когда нормальное соединение будет намного быстрее? –
«Каков наилучший способ сделать это?» Не используйте курсор. Похоже, вы должны быть в состоянии сделать это без. –