2
我的情况在XML变量替换文本,我也有类似的XML以下内容:SQL服务器 - 基于加入
DECLARE @MyXML XML
SET @MyXML =
'
<Students>
<Student>
<Nickname>Cat</Nickname>
<Name>Catherine</Name>
</Student>
<Student>
<Nickname>Cat</Nickname>
<Name>Joseph</Name>
</Student>
</Students>
'
SELECT T.Students.value('Nickname[1]', 'varchar(20)')
FROM @MyXML.nodes('/Students/Student[Nickname = "Cat"]') T(Students)
JOIN dbo.MyStudents CLASS ON T.Students.value('Name[1]', 'varchar(20)') = CLASS.StudentName
我想更新也会从这个SELECT语句返回的记录,更换昵称与CLEARED。所以,如果dbo.MyStudents已经约瑟夫而不是凯瑟琳,产生的@MyXML变量为:
<Students>
<Student>
<Nickname>Cat</Nickname>
<Name>Catherine</Name>
</Student>
<Student>
<Nickname>CLEARED</Nickname>
<Name>Joseph</Name>
</Student>
</Students>
有没有办法通过直接修改XML变量来做到这一点?或者我需要将XML变量放入临时表中并在临时表上执行.modify?
到目前为止,我发现的例子没有基于连接的.modify条件更新。