TSQL 替换 XML 字符串中的值

TSQL Replace value in XML String

我的 table 中有一个字段包含可选的数据字段 XML。

其中一个字段是我的 UI 中的 editable,我正在尝试更新 XML.

块中的节点/值

这是我的资料:

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

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

有什么办法吗?

你已经差不多了,只需要将它包裹在里面 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

的文档