TSQL替换XML String中的值

时间:2015-01-28 15:18:32

标签: sql-server tsql sql-server-2012 xquery

我的表格中有一个字段,其中包含以XML格式包含的可选数据字段。

其中一个字段可以在我的UI中编辑,我正在尝试更新XML块中的节点/值。

这就是我所拥有的:

UPDATE dbo.TFS_Feedback_New 
SET Details.modify('replace value of (/optional/educational/text())[1] with "@updatedEducation"') 
WHERE feedbackID = @FBID

问题是,我需要将替换作为变量传递。当我按原样使用它时,它会将@updatedEducation作为字段值;不是变量的实际值。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

你几乎就在那里,只需将它包裹在sql:variable()内:

UPDATE dbo.TFS_Feedback_New
    SET Details.modify('
        replace value of (/optional/educational/text())[1]
        with sql:variable("@updatedEducation")')
    WHERE feedbackID = @FBID

MSDN

上的文档