将XML写入SQL Server中的驱动器

将XML写入SQL Server中的驱动器,sql,sql-server,xml,for-xml-path,Sql,Sql Server,Xml,For Xml Path,我正在努力研究如何在SQLServer中将XML写入我的硬盘。我想我可以这样做: EXEC xp_cmdshell 'bcp "@@@INSERT SELECT/FOR XML QUERY@@@" queryout "C:\test.xml" -T -c -t' 但我的SELECT/forxml查询大约有40行,所以我不希望这样。我尝试将XML存储为@storedXML,将其保存在一个表中,然后使用bcp查询该表: CREATE TABLE xmlOutput(outXML xml) INSE

我正在努力研究如何在SQLServer中将XML写入我的硬盘。我想我可以这样做:

EXEC xp_cmdshell 'bcp "@@@INSERT SELECT/FOR XML QUERY@@@" queryout "C:\test.xml" -T -c -t'
但我的SELECT/forxml查询大约有40行,所以我不希望这样。我尝试将XML存储为@storedXML,将其保存在一个表中,然后使用bcp查询该表:

CREATE TABLE xmlOutput(outXML xml)
INSERT INTO xmlOutput(outXML)
VALUES (@storedXML)

DECLARE @sqlCmd VARCHAR(1000)
SET @sqlCmd = 'bcp "SELECT * FROM xmlOutput" queryout C:\test.xml -c -T -t'
EXEC xp_cmdshell @sqlCmd

但让我感到困惑的是“无法打开BCP主机数据文件”。

你看过这篇帖子吗:你是否考虑过将40行代码放入一个存储过程中,然后使用
BCP“exec myDB.dbo.myProcedure”queryout“C:\test.xml”-T-C
?谢谢-存储过程最终成功了,在我整理出更多涉及文件夹权限的问题之后。还需要包括-S和我的服务器/实例名称。