如何从SQLServer向xml文件提供数据?
我需要定期向特定格式的xml提供可以从SQL Server 2012获得的数据。为了尽可能地自动化任务,正确或更有效的方法是什么?我可以从SQL数据库中选择所有数据(标记的值),但是否可以将它们保存为特定的XML格式,并从查询中生成整个文件?或者更确切地说,我需要将数据注入到该外部文件中。一个客户端的xml文件如下所示:如何从SQLServer向xml文件提供数据?,sql,sql-server,xml,Sql,Sql Server,Xml,我需要定期向特定格式的xml提供可以从SQL Server 2012获得的数据。为了尽可能地自动化任务,正确或更有效的方法是什么?我可以从SQL数据库中选择所有数据(标记的值),但是否可以将它们保存为特定的XML格式,并从查询中生成整个文件?或者更确切地说,我需要将数据注入到该外部文件中。一个客户端的xml文件如下所示: <?xml version="1.0"?> <AddCases> <AddCase> <Case> <Debtor>
<?xml version="1.0"?>
<AddCases>
<AddCase>
<Case>
<Debtor>
<Consumer>
<FirstName>John</FirstName>
<Surname>Doe</Surname>
<Citizenship>Mars</Citizenship>
<Birthday>1979-08-31</Birthday>
<SSN>79083102949</SSN>
<Address>
<Street>135 Main St</Street>
<City>Linden</City>
<ZipCode>5556</ZipCode>
<Country>US</Country>
</Address>
<Sex>men</Sex>
</Consumer>
</Debtor>
<History>
<InformationDate>2014-01-02</InformationDate>
<PaymentStatusCode>00</PaymentStatusCode>
<OverDue>0</OverDue>
<OverdueAmount>0</OverdueAmount>
<DueAmount>42000</DueAmount>
</History>
.
.
.
<SourceSymbol>pap</SourceSymbol>
</Consent>
</Consents>
</CreditAccount>
</CreditAccouts>
</Case>
</AddCase>
约翰
雌鹿
火星
1979-08-31
79083102949
主街135号
菩提树
5556
美国
男人
2014-01-02
00
0
0
42000
.
.
.
爸爸
看一看。它提供了相当多的选项并返回XML,因此您可以使用它。我已经做了很多显式模式查询,使用联合查询每一层。有点难看,但它能工作
select 1 as tag,
null as parent,
'' as [AddCases!1!xmlns],
null as [AddCase!2!xmlns],
null as [Case!3!xmlns],
null as [Debtor!4!FirstName!elementxsinil],
null as [Debtor!4!LastName!elementxsinil]
union
select 2 as tag,
1 as parent,
null as [AddCases!1!xmlns],
'' as [AddCase!2!xmlns],
null as [Case!3!xmlns],
null as [Debtor!4!FirstName!elementxsinil],
null as [Debtor!4!LastName!elementxsinil]
union
select 3 as tag,
2 as parent,
null as [AddCases!1!xmlns],
null as [AddCase!2!xmlns],
null as [Case!3!xmlns],
null as [Debtor!4!FirstName!elementxsinil],
null as [Debtor!4!LastName!elementxsinil]
union
select 4 as tag,
3 as parent,
null as [AddCases!1!xmlns],
null as [AddCase!2!xmlns],
null as [Case!3!xmlns],
'Jack' as [Debtor!4!First Name!elementxsinil],
'Smith' as [Debtor!4!Last Name!elementxsinil]
--your from here
for xml explicit
由此产生:
<AddCases xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
<AddCase xmlns="">
<Case>
<Debtor>
<FirstName>Jack</FirstName>
<LastName>Smith</LastName>
</Debtor>
</Case>
</AddCase>
</AddCases>
。我可能会使用sqlcmd选项,并使用Windows任务调度器运行它以实现自动化。我建议使用ColdFusion、.net或类似语言编写的应用程序来查询数据库并编写xml文件。然后安排应用程序以所需的频率运行。对XML路径使用可能是另一种更简单/不太复杂的解决方案。谢谢,我希望有更干净的东西,但也可以。如果AUTO和PATH适合您,它们会更干净。他们不适合我,所以我不得不使用显式。