对于XML PATH更改位置

时间:2017-01-16 22:46:26

标签: xml tsql powershell

我有一个像

这样的查询
SELECT ProductModelID AS "@id", Name 
  FROM Production.ProductModel 
  WHERE ProductModelID=122 or ProductModelID=119  
  FOR XML PATH ('ProductModelData'), root ('Root');  
GO

并且效果很好,但问题是我想用PowerShell创建一个创建XML文件的任务,但我无法分辨存储文件的位置。

2 个答案:

答案 0 :(得分:0)

有多种方法可以创建XML文档。但最好的方法是使用 XMLTextWriter类

$xmlWriter = New-Object System.XMl.XmlTextWriter('C:\Cars.xml',$Null)

$xmlWriter.WriteStartDocument()

$xmlWriter.WriteComment('Value')

浏览链接以供参考。

XML Document Creation

替代方式:

XML Creation

希望它有所帮助。

答案 1 :(得分:0)

您可以使用BCP将SQL查询的结果写入文件系统:

DECLARE @FileName VARCHAR(50)='C:\YourPath\test.xml';
DECLARE @SQLCmd   VARCHAR(500)= 
                  'bcp ' 
                + '"SELECT ProductModelID AS "@id", Name ' 
                + 'FROM Production.ProductModel ' 
                + 'WHERE ProductModelID=122 or ProductModelID=119 '  
                + 'FOR XML PATH (''ProductModelData''), root (''Root'')"' 
                + ' queryout '  
                + @FileName 
                + ' -w -T -S ' + @@SERVERNAME;

-- create the XML file
EXECUTE master..xp_cmdshell @SQLCmd