经过几个小时的反复尝试,我已经找到了基于同一节点^中另一个元素的值更新一个元素的值的语法。我找不到类似的例子。
UPDATE #SUBSCRIPTION
SET ExtensionSettings.modify('replace value of (/ParameterValues/ParameterValue[Name="PATH"]/Value/text())[1] with sql:variable("@PATH")')
UPDATE #SUBSCRIPTION
SET ExtensionSettings.modify('replace value of (/ParameterValues/ParameterValue[Name="FILENAME"]/Value/text())[1] with sql:variable("@FILENAME")')
之前:
<ParameterValues>
<ParameterValue><Name>PATH</Name><Value>\\valinor\group\XFER</Value></ParameterValue>
<ParameterValue><Name>FILENAME</Name><Value>REPORT CARD TEST - YYYMMDD</Value></ParameterValue>
<ParameterValue><Name>FILEEXTN</Name><Value>True</Value></ParameterValue>
<ParameterValue><Name>RENDER_FORMAT</Name><Value>PDF</Value></ParameterValue>
<ParameterValue><Name>WRITEMODE</Name><Value>Overwrite</Value></ParameterValue>
</ParameterValues>
后:
<ParameterValues>
<ParameterValue><Name>PATH</Name><Value>\\valinor\group\XFER\TEST\Site1</Value></ParameterValue>
<ParameterValue><Name>FILENAME</Name><Value>0123456X - 20180615</Value></ParameterValue>
<ParameterValue><Name>FILEEXTN</Name><Value>True</Value></ParameterValue
<ParameterValue><Name>RENDER_FORMAT</Name><Value>PDF</Value></ParameterValue>
<ParameterValue><Name>WRITEMODE</Name><Value>Overwrite</Value></ParameterValue>
</ParameterValues>
现在,如果我能想出如何把它们组合成一个语句。但现在已经够近了。
^请随意更正任何不正确的措辞。