sql - 更新(替换部分值)SQL 中的 XML 列

标签 sql sql-server xml tsql xquery-sql

我的表中有一个 XML 列,我想用新文本替换该列中出现的特定文本。这是xml结构,

<Story>
 <StoryNonText>
  <NonText>
   <ImageID>1</ImageID>
   <Src>http://staging.xyz.com/FolderName/1.png</Src>
  </NonText>
  <NonText>
   <ImageID>2</ImageID>
   <Src>http://staging.xyz.com/FolderName/2.png</Src>
  </NonText>
 </StoryNonText>
</Story> 

在上面的 XML 中,我想替换所有的 <Src>具有 http://staging.xyz.com/ 的值 http://production.xyz.com/ 。请指导我如何做到这一点!

最佳答案

您可以使用 Replace() 函数,如下所示:

Update TableName
SET
ColumnName=replace(CAST(ColumnName AS VARCHAR(8000)),'<Src>http://staging.xyz.com/','<Src>http://production.xyz.com/')

关于sql - 更新(替换部分值)SQL 中的 XML 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38887963/

相关文章:

python - 如何查询 sql server 表的新行以更新整个表的结果

sql-server - 如何编写生成 xml 和 xsd 的 `select ... FOR XML` 查询,以便它们为 SQLXMLBulkLoad 做好准备?

sql-server - SQL Server中唯一键是聚集索引还是非聚集索引?

sql - 如何将两个SQL查询合并为一个

PHP - 递归地从SQL数据库中获取数据

MySql命令行未转义撇号

sql-server - SQL Server 2008 事件监视器资源等待类别 : Does Latch include CPU or just disk IO?

xml - 编写有效的 XSLT

java - 方法取决于不存在的组 - Testng

sql - 如何在 libpq 中使用 PQexecParams?