如何将SQL查询结果保存到磁盘上的XML文件中

Tom*_*bes 12 xml sql-server sql-server-2012

我想将表从SQL Server 2012导出到XML文件.我找到了很好的答案,在这里如何从SQL Server数据库查询中获取XML结果,但我仍然缺少如何将此结果物理保存到文件中.

SQL查询是:

SELECT [Created], [Text]
FROM [db304].[dbo].[SearchHistory]
FOR XML PATH('Record'), ROOT('SearchHistory')
Run Code Online (Sandbox Code Playgroud)

我使用Microsoft SQL Server Management Studio来执行此结果.我在结果窗口中看到了XML,但我无法保存它.

在上下文菜单中有"Save Result As ..",但是有98900行,我使用此选项耗尽了8GB内存.

有没有办法如何将此查询直接保存到磁盘上的XML文件?

M.A*_*Ali 10

您还可以使用SQL Server的扩展存储过程将其导出到xml文件.

但是您需要先配置sql server才能使用它.

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
Run Code Online (Sandbox Code Playgroud)

在SQL Server中启用xp_cmdshel之后.您可以使用以下命令将数据导出到xml文件.

EXEC xp_cmdshell 'bcp "SELECT [Created], [Text] FROM [db304].[dbo].[SearchHistory] FOR XML PATH(''Record''), ROOT(''SearchHistory'')" queryout "C:\bcptest.xml" -T -c -t,'
Run Code Online (Sandbox Code Playgroud)


mar*_*c_s 5

您始终可以使用SSMS中的"结果到文件"选项:

在此输入图像描述

这应该将查询执行的结果直接输出到磁盘上的文件中

  • 这就是我想要的,但不幸的是文件被裁剪,文件的末尾丢失了.:-( XML在元素内部中断.但SSMS sais:"查询执行成功". (2认同)