我使用的是SQL Server 2008 R2,我的存储过程采用了一个带有多个级别的结构化xml参数。
DECLARE @XML_Account XML=
<Accounts>
<Account>
<NameID></NameID>
<AID></AID>
<TransactionTime></TransactionTime>
<TransactionEndTime></TransactionEndTime>
<TrasactionName></TrasactionName>
<Purchases>
<Purchase>
<Name></Name>
<Qty></Qty>
<Cost></Cost>
<Tax1></Tax1>
<Tax2></Tax2>
<Tax3></Tax3>
<Tax4></Tax4>
</Purchase>
<Purchase>
<Name></Name>
<Qty></Qty>
<Cost></Cost>
<Tax1></Tax1>
<Tax2></Tax2>
<Tax3></Tax3>
<Tax4></Tax4>
</Purchase>
</Purchases>
<Error></Error>
</Account>
</Accounts>
现在我想将值添加到错误节点,如<Error>please check error</Error>
并返回xml参数
答案 0 :(得分:2)
首先,删除空节点(因为它无法替换):
SET @XML_Account.modify('delete (Accounts/Account/Error)[1]')
然后,添加您的错误:
SET @XML_Account.modify('insert <Error>please check error</Error> as last into (Accounts/Account)[1]')
在许多节点中设置错误以使用REPLACE的最简单方法:
SET @XML_Account = REPLACE(CONVERT(nvarchar(max), @XML_Account), N'<Error/>',N'<Error>please check error</Error>')