Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从SQLServer向xml文件提供数据?_Sql_Sql Server_Xml - Fatal编程技术网

如何从SQLServer向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提供可以从SQL Server 2012获得的数据。为了尽可能地自动化任务,正确或更有效的方法是什么?我可以从SQL数据库中选择所有数据(标记的值),但是否可以将它们保存为特定的XML格式,并从查询中生成整个文件?或者更确切地说,我需要将数据注入到该外部文件中。一个客户端的xml文件如下所示:

<?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适合您,它们会更干净。他们不适合我,所以我不得不使用显式。