sql - 将 XML 节点插入表中的 SQL 列

标签 sql sql-server xml

我有一个要传递给存储过程的 XML 文件。

我也有一张 table 。该表包含列 VehicleReg | XML |处理日期

我的 XML 是这样的:

<vehicles> 
  <vehicle>
    <vehiclereg>AB12CBE</vehiclereg>
    <anotherprop>BLAH</anotherprop>
  </vehicle>
  <vehicle>
    <vehiclereg>AB12CBE</vehiclereg>
    <anotherprop>BLAH</anotherprop>
  </vehicle>
</vehicles>

我需要做的是读取 xml 并将 vehiclereg 和完整的车辆 xml 字符串插入每一行(dateprocessed 是一个 getdate() 所以不是问题)。

我正在做类似下面的事情,但没有运气:

DECLARE @XmlData XML
Set @XmlData = EXAMPLE XML
SELECT T.Vehicle.value('(vehiclereg)[1]', 'NVARCHAR(10)') AS vehiclereg,
       T.Vehicle.value('.', 'NVARCHAR(MAX)'),
       GETDATE()
FROM @XmlData.nodes('Vehicles/Vehicle') AS T(Vehicle)

我想知道是否有人可以指出正确的方向?

问候

最佳答案

你想要的完整查询:

DECLARE @XmlData XML
Set @XmlData = '<vehicles> 
  <vehicle>
    <vehiclereg>AB12CBE</vehiclereg>
    <anotherprop>BLAH</anotherprop>
  </vehicle>
  <vehicle>
    <vehiclereg>AB12CBE</vehiclereg>
    <anotherprop>BLAH</anotherprop>
  </vehicle>
</vehicles>'
SELECT T.Vehicle.value('./vehiclereg[1]', 'NVARCHAR(10)') AS vehiclereg,
       T.Vehicle.query('.'),
       GETDATE()
FROM @XmlData.nodes('/vehicles/vehicle') AS T(Vehicle)

enter image description here

关于sql - 将 XML 节点插入表中的 SQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724985/

相关文章:

SQL 字符串与 < 或 > 比较

java - XPath 选择 wsdl 前缀命名空间

mysql - 用于更新每个备用列的 SQL 查询

mysql - LIMIT 和 UNION ALL 未返回请求的记录数

mysql - 将两个更新查询合并到单例 MySQL 中

mysql - 1 个字段的 WHERE 子句

sql - SQL Server 2012 中列存储索引中列的顺序是否重要

sql-server - 如何在 SQL Server 中存储、过滤和检索 JSON 数据

sql - Oracle SQL XMLElement 仅输出 (XMLTYPE)

c# - 使用 c# 使用 xml 文件填充 TreeView