我正在尝试从我从另一个表中获取的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
请帮助我,我做错了。
答案 0 :(得分:2)
这不会像那样工作。您需要使用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;