sql-server - XML 修改属性值
问题描述
我正在研究 XML 结构,但无法解决问题;
SET @V_XML.modify('replace value of (/Table/Header/Column/@readonly)[1] with "False" ')
这是有效的,但 '[1]' 是我的列号,我想让它成为参数。
SET @V_XML.modify('replace value of (/Table/Header/Column/@readonly)[sql:variable("@MYCOLUMNNUM")] with "False" ')
这让我失望了
请帮忙,谢谢
解决方案
您没有共享您的 XML,所以我自己设计了它。
如果您需要通过其序号更改特定列中的属性值,则需要在Column元素之后使用谓词。
SQL
-- DDL and sample data population, start
DECLARE @V_XML XML =
(N'<Table>
<Header>
<Column readonly="True"></Column>
<Column readonly="True"></Column>
<Column readonly="True"></Column>
</Header>
</Table>');
-- DDL and sample data population, end
DECLARE @MYCOLUMNNUM INT = 3;
-- before
SELECT @V_XML;
SET @V_XML.modify('replace value of (/Table/Header/Column[sql:variable("@MYCOLUMNNUM")]/@readonly)[1] with "False"');
-- after
SELECT @V_XML;
推荐阅读
- forms - 选中 Symfony 表单 EntityType 复选框
- javascript - discord.js 命令处理程序错误
- amazon-ec2 - 无法从本地计算机连接到 AWS EC2(Ubuntu)上的 TCP 服务器
- reactjs - React-Redux - 未处理的拒绝(错误):操作必须是普通对象。使用自定义中间件进行异步操作
- c - 当文件被清除(即变为空)并保存在 Minifilter 中时,我们会得到什么回调?
- angular - 为 Angular 应用程序配置 docker-compose 的正确方法
- python - 如何在不崩溃应用程序的情况下暂停/睡眠()功能?
- javascript - 找不到名称“FontFace”。TS2304
- python - 将字符串的数字替换为其他数字
- php - 不使用 CodeIgniter 在 Live 服务器上渲染网站