Tre*_*Dev 8 xml t-sql sql-server-2005 xml-dml dml
有没有办法将这两个替换值与1个更新语句组合在一起?
UPDATE dbo.MyTable
SET MyXmlColumn.modify('replace value of (/node/@att1)[1] with "1"')
WHERE id = 1
UPDATE dbo.MyTable
SET MyXmlColumn.modify('replace value of (/node/@att2)[1] with "2"')
WHERE id = 1
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-US/library/ms190675(v=SQL.90).aspx
我不认为你很幸运,Thx.
我尝试了几种没有快乐的语法变体.例如,显而易见的:
SET MyXmlColumn.modify('...'), MyXmlColumn.modify('...')
Run Code Online (Sandbox Code Playgroud)
收益率:
在SET子句中多次指定列名"MyXmlColumn".在同一SET子句中不能为列分配多个值.修改SET子句以确保列只更新一次.如果SET子句更新视图的列,则列名称"MyXmlColumn"可能在视图定义中出现两次.
但是对于XML DML空间中的此错误消息没有任何帮助.
底线是Expression1和Expression2必须是单个元素.
即使是最彻底的讨论最终也会绕过它......
http://blogs.msdn.com/b/denisruc/archive/2005/09/19/471562.aspx
抱歉.:(
PS:如果你可以忍受hackiness,转换为VARCHAR(MAX)然后做一个正常的REPLACE()应该做的伎俩.请参阅:我可以在t-sql中进行查找/替换吗?
| 归档时间: |
|
| 查看次数: |
2450 次 |
| 最近记录: |