Вопрос:

Проблема в обновлении той же таблицы

sql sql-server sql-server-2008-r2

21 просмотра

1 ответ

336 Репутация автора

Я пытаюсь обновить таблицу из значений CSV, которые я получаю из другой таблицы. Это значение CSV является выводом подзапроса, который я создал на основе переменной в таблице #Form. Теперь я хочу обновить таблицу #Form еще раз, и я не хочу использовать курсор. Я не могу правильно обновить таблицу #Form.

Ниже приведен код, который я использую.

Update f
SET AuditorComment = (
    Select @Comment = @Comment+', '+a.Value
    FROM #Form fd
    LEFT JOIN AuditData a on (fd.FormID=a.objectID and a.ObjectTypeID=12 )
    WHERE  FORM_OID=@frmOID AND SubjectID=@subjectId AND f.FormID = fd.FormID 
    )
From #Form f

Пожалуйста, помогите мне, где я делаю это неправильно.

Автор: Nimble Fungus Источник Размещён: 22.08.2016 08:53

Ответы (1)


2 плюса

876751 Репутация автора

Решение

Это не сработает. Вам нужно использовать for xml pathили аналогичный метод:

update f
    set AuditorComment = stuff((select ', ' + ad.value
                                from formdata fd join
                                     AuditData ad 
                                     on fd.FormID = ad.objectID and ad.ObjectTypeID = 12
                                where FORM_OID = @frmOID and
                                      SubjectID = @subjectId and
                                      f.FormID = fd.FormID 
                                for xml path ('')
                               ), 1, 2, '')
    From #Form f;
Автор: Gordon Linoff Размещён: 22.08.2016 08:58
Вопросы из категории :
32x32