Dav*_*vid 5 sql-server xquery sql-server-2008
我有一个表(让我们称之为t),其中包含字段id(int)和XmlField(xml).
我尝试在一个查询中添加多个节点,但无论我尝试了什么,我都会遇到错误.
查询是:
update t
set XmlField.modify('insert <f1>value here</f1><f2>value there</f2> into (/xmldoc)')
Run Code Online (Sandbox Code Playgroud)
我收到错误:
XQuery [t.XmlField.modify()]:''之前的语法错误,''在'之后','之前'或'之后'''.
当我尝试只添加一个xml节点时,它正在工作(示例):
update t set XmlField.modify('insert <f1>value here</f1> into (/xmldoc)')
Run Code Online (Sandbox Code Playgroud)
当我尝试添加这样的嵌套节点时,它也正在工作:
update t set XmlField.modify('insert <f><f1>value here</f1><f2>value there</f2></f> into (/xmldoc)')
Run Code Online (Sandbox Code Playgroud)
有没有办法让它成真?
在SQL Server文档不会说漂亮清楚,insert
语句可以处理多个节点.所以我的猜测是你的问题只是一个语法错误.(Microsoft语法与XQuery Update Facility规范中定义的略有不同,但它的识别相似.)
我尝试将元素f1和f2组合成一个序列并将它们包装在括号中(规范在这里需要一个ExprSingle,这意味着不允许使用顶级逗号):
update t
set XmlField.modify(
'insert (<f1>value here</f1>, <f2>value there</f2>) into (/xmldoc)')
Run Code Online (Sandbox Code Playgroud)
(未针对SQL Server进行测试.)
归档时间: |
|
查看次数: |
4448 次 |
最近记录: |