Sql server 从SQL Server创建XML
我需要一些帮助。我正在尝试使用以下查询创建XML:Sql server 从SQL Server创建XML,sql-server,xml,sqlxml,xml-comments,Sql Server,Xml,Sqlxml,Xml Comments,我需要一些帮助。我正在尝试使用以下查询创建XML: WITH XMLNAMESPACES ('Envelope' AS soapenv) SELECT * FROM CrearViaje4 JOIN transporte ON CrearViaje4.Cod_viaje = transporte.Cod_viaje JOIN depositoSalida ON transporte.Cod_viaje = depositoSalida.cod_viaje
WITH XMLNAMESPACES ('Envelope' AS soapenv)
SELECT *
FROM CrearViaje4
JOIN transporte ON CrearViaje4.Cod_viaje = transporte.Cod_viaje
JOIN depositoSalida ON transporte.Cod_viaje = depositoSalida.cod_viaje
FOR XML AUTO, ROOT('soapenv:Body'), ELEMENTS
我得到了这个结果:
<soapenv:Body xmlns:soapenv="Envelope">
<CrearViaje4>
<cod_viaje>A02VAIFHDXH</cod_viaje>
<Empresa>Tradelog</Empresa>
<transporte>
<cod_viaje>A02VAIFHDXH</cod_viaje>
<depositoSalida>
<cod_viaje>A02VAIFHDXH</cod_viaje>
</depositoSalida>
</transporte>
</CrearViaje4>
</soapenv:Body>
您可以尝试加入CrearViaje4.Cod\u viaje=depositoSalida.Cod\u viaje上的depositoSalida
with xmlnamespaces ('Envelope' as soapenv)
select *
from CrearViaje4
join transporte on CrearViaje4.Cod_viaje = transporte.Cod_viaje
join depositoSalida on CrearViaje4.Cod_viaje = depositoSalida.cod_viaje
for xml auto, root('soapenv:Body'), elements
或者使用子查询获取额外数据
with xmlnamespaces ('Envelope' as soapenv)
select *
, ( select *
from transporte
where CrearViaje4.Cod_viaje = transporte.Cod_viaje
for xml path(''), type ) as transporte
, ( select *
from depositoSalida
where CrearViaje4.Cod_viaje = depositoSalida.Cod_viaje
for xml path(''), type ) as depositoSalida
from CrearViaje4
for xml auto, root('soapenv:Body'), elements
这是一个很好且全面的答案,+1来自我这边。。。尽管我建议避免使用
AUTO
模式,并在(几乎)所有情况下使用PATH
。一个例外是显式,如果您需要使用名称空间或指令进行不受支持的黑客攻击(但这种模式确实令人痛苦…)。值得一提的是:子选择将重复名称空间,这没有错,但非常烦人。。。
with xmlnamespaces ('Envelope' as soapenv)
select *
, ( select *
from transporte
where CrearViaje4.Cod_viaje = transporte.Cod_viaje
for xml path(''), type ) as transporte
, ( select *
from depositoSalida
where CrearViaje4.Cod_viaje = depositoSalida.Cod_viaje
for xml path(''), type ) as depositoSalida
from CrearViaje4
for xml auto, root('soapenv:Body'), elements