我有一个要传递给存储过程的 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)
关于sql - 将 XML 节点插入表中的 SQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724985/