用于XML路径更改位置

用于XML路径更改位置,xml,tsql,powershell,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文件,但我不知道在哪里存储文件。创建XML文档

我有一个类似的问题

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

它工作得很好,但问题是我想用PowerShell创建一个任务来创建一个XML文件,但我不知道在哪里存储文件。

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

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

$xmlWriter.WriteStartDocument()

$xmlWriter.WriteComment('Value')
浏览链接以供参考

其他方法:


希望有帮助。

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

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

$xmlWriter.WriteStartDocument()

$xmlWriter.WriteComment('Value')
浏览链接以供参考

其他方法:


希望有帮助。

您可以使用
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

您可以使用
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

您是如何执行SQL的?您是如何执行SQL的?