SQL Server 2012からXMLファイルにテーブルをエクスポートしたいと思います。 いい答え および ここ を見つけましたが、SQL ServerデータベースクエリからXML結果を作成する方法を見つけましたが、この結果をファイルに物理的に保存する方法がまだありません。
SQLクエリは次のとおりです。
SELECT [Created], [Text]
FROM [db304].[dbo].[SearchHistory]
FOR XML PATH('Record'), ROOT('SearchHistory')
この結果を実行するには、Microsoft SQL Server Management Studioを使用します。結果ウィンドウにXMLが表示されますが、保存できません。
コンテキストメニューには[結果に名前を付けて保存]がありますが、98900行ではこのオプションで8GBのメモリが不足しています。
このクエリをディスク上のXMLファイルに直接保存する方法はありますか?
SQL Serverの拡張ストアドプロシージャをXMLファイルにエクスポートすることもできます。
ただし、使用する前にSQLサーバーを構成する必要があります。
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
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,'
SQL Server 2012でこの仕事をするのは大変です。最後に、sqlcmdでSQL UTF-8ファイルが既にサポートされているため、最終的にSQL Server 2014に更新します。
以下を実行します:
sqlcmd -S -U sa -P sapassword -i inputquery_file_name -C65001 -o outputfile_name