You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何在FOR XML语句里添加currencyID="EUR"属性?

可以实现!这里是具体的解决方案

当然可以在SQL Server的FOR XML语句里给节点添加currencyID="EUR"属性,只需要利用PATH模式下的属性语法即可,具体修改如下:

基础实现代码

SELECT 
    'EUR' AS [@currencyID], -- 定义节点的currencyID属性
    LineTotalAmount,
    TaxTotalAmount,
    DuePayableAmount
FOR XML PATH('ram:SpecifiedTradeSettlementMonetarySummation'), TYPE

关键原理说明

在SQL Server的FOR XML PATH语法中:

  • 列名以@开头时,会被解析为当前节点的属性,而不是子元素
  • 普通列名会自动成为目标节点的子元素,和你原来的逻辑保持一致

补充:如果涉及命名空间

如果ram是一个需要声明的命名空间前缀,记得加上WITH XMLNAMESPACES来显式声明,避免XML验证报错:

WITH XMLNAMESPACES ('http://your-namespace-uri-here' AS ram) -- 替换成实际的命名空间URI
SELECT 
    'EUR' AS [@currencyID],
    LineTotalAmount,
    TaxTotalAmount,
    DuePayableAmount
FOR XML PATH('ram:SpecifiedTradeSettlementMonetarySummation'), TYPE

这样生成的XML输出就会是你想要的格式:

<ram:SpecifiedTradeSettlementMonetarySummation currencyID="EUR">
  <LineTotalAmount>...</LineTotalAmount>
  <TaxTotalAmount>...</TaxTotalAmount>
  <DuePayableAmount>...</DuePayableAmount>
</ram:SpecifiedTradeSettlementMonetarySummation>

内容的提问来源于stack exchange,提问作者user11921138

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:45:35