c# - SQL Server中如何查询XML列中的数据

标签 c# sql sql-server xml

我在 xml 列中有这样的数据:

<product>
   <productID>1</productID>
   <productname>tea</productname>
</product>
<product>
   <productID>2</productID>
   <productname>coffee</productname>
</product>

我想将 productname 的值更改为 green tea,其中 productID = 2

我正在使用:

UPDATE [dbo].ProductDocs
SET ProductDoc.modify('replace value of (/Product/ProductName)[2] with "NewName"')

但在这里它总是会改变第二个产品的值(value)。请告诉我如何使用productID查询。

最佳答案

使用谓词表达式按 productID 值过滤 product 元素,如下所示:

UPDATE [dbo].ProductDocs
SET ProductDoc.modify('
    replace value of (/product[productID=2]/productname/text())[1] with "NewName"
')

另请注意,如其他答案中所述,XML 和 XPath/XQuery 区分大小写。

关于c# - SQL Server中如何查询XML列中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275152/

相关文章:

MySQL。向数据库插入多个重复行

mysql - SQL 查询组合搜索

sql-server - Management Studio 如何知道保存我的 T-SQL 注释?

c# - 为什么两个空列表不相等?

c# - 如果前一个线程仍然很忙,如何让 Timer 跳过滴答

c# - 为什么我会收到错误 "Unsafe code may only appear if compiling with/unsafe"?

c# - 关于Mysql更新!

MySQL用父ID替换父名称

sql-server - 帮助进行 sql 查询 - 计数

sql-server - 是否有任何理由避免将 bigint 用作代理主键?