1
我想用存儲過程XQuery的插入/更新價值
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)
這樣一個
<?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>
更新XML和只要能正常工作爲 'BackupPath' 包含價值
<BackupPath>MyLocalPath</BackupPath>
如何修改此查詢以插入值(或者在需要時驗證)如果
<BackupPath />
我現在收到一條錯誤消息。 XML數據類型方法「modify」的參數1必須是字符串文字。 – davorn 2014-11-08 11:15:52
無論如何,這種方法有效嗎? http://stackoverflow.com/a/21457475/18771 – Tomalak 2014-11-08 11:40:57