【发布时间】:2014-11-08 10:39:20
【问题描述】:
我想像这样更新xml
<?xml version="1.0" encoding="utf-16"?>
<Properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<BackupPath>MyLocalPath</BackupPath>
</Properties>
使用存储过程
declare @PropertyName nvarchar(500)
declare @PropertyValue nvarchar(MAX)
set @PropertyName = 'BackupPath'
set @PropertyValue = 'MyTestPath'
DECLARE @ExistingSettings XML;
DECLARE @NewSettings nvarchar(MAX);
SET @ExistingSettings = (SELECT TOP(1) CAST(SettingsDefinition AS XML) FROM ApplicationSettings)
SET @ExistingSettings.modify('replace value of (/Properties/*[local-name() = sql:variable("@PropertyName")]/text())[1] with sql:variable("@PropertyValue")')
UPDATE ApplicationSettings
SET SettingsDefinition = CAST(@ExistingSettings AS nvarchar(MAX)), LastUpdate = GetDate()
WHERE ID = (SELECT TOP(1) ID FROM ApplicationSettings)
只要“BackupPath”包含值,它就可以正常工作
<BackupPath>MyLocalPath</BackupPath>
如果
<BackupPath />
【问题讨论】: