【发布时间】:2019-05-06 16:13:00
【问题描述】:
我有一个具有以下结构的 XML 参数
<?xml version="1.0" encoding="utf-16"?>
<ContactsGET xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<data>
<Datum>
<Owner>
<name>dilip.nair</name>
<id>3565223000000178021</id>
</Owner>
<Email xsi:type="xsd:string">mail2vembu@mail.com</Email>
<Full_Name>Sridhar Vembu</Full_Name>
<name>Abcon Group</name>
<id>3565223000000206007</id>
</Datum>
<Datum>
<Owner>
<name>dilip.nair</name>
<id>3565223000000178021</id>
</Owner>
<Email xsi:type="xsd:string">mail2vembu@mail.com</Email>
<Full_Name>Sridhar Vembu</Full_Name>
<name>Abcon Group</name>
<id>3565223000000206007</id>
</Datum>
</data>
<info>
<per_page>200</per_page>
<count>200</count>
<page>1</page>
<more_records>true</more_records>
</info>
</ContactsGET>
在 T-SQL 中,我试图处理 XML 中 Datum 标记下的每条记录。
SELECT
[TABLE].[ROW].value('Datum[1]','VARCHAR(4000)')
FROM
@pXMLGetContact.nodes('ContactsGET/data') AS [TABLE]([ROW])
SELECT @pXMLGetContact;
但是结果集只返回第一条记录。算法逻辑是将整个信息插入到表变量或临时表中,然后对每条记录进行一条一条处理。我有一些业务逻辑来实现逐条记录,我该如何选择整个记录集。
我使用 Azure SQL 作为我的服务器。
【问题讨论】:
标签: sql-server xml tsql azure-sql-database xquery-sql