msdb.dbo.sp_send_dbmail
クエリ結果を添付ファイルとして送信するために使用する
場合@query_result_width
、10 から 32767 までの整数であるパラメーターを提供する必要があります。 Microsoft Excel で非常に簡単に開くことができる xml 添付ファイル (2、3 回クリックするだけで、優れた Excel テーブルになります)For XML Path('Row'), Root('Data'), Type
しかし、xml ファイルが 32767 バイトを超える場合、send_dbmail は xml ファイルの最初の行の 32767 番目の列に「改行」を挿入し、無条件にこれを行います! そこに何が書かれているかは気にしないことを意味します。改行するだけなので、xmlデータが破損します... sp_send_dbmailがその厄介な改行を挿入するのを防ぐ方法について、5時間以上インターネットをさまよっています。私が遭遇した唯一の解決策は、私が制御できる改行を挿入することでした.32767列目以降ではありません。次のようなクエリで問題は解決しますが、余分な作業が必要であり、クリーンではありません...
Select Replace(
Cast(
(
Select
*
From Table
For XML Path('Row'), Root('Data'), Type
)
As NVarChar(Max))
, N'/>', N'/><!--This is the controlled line-break. Remove this comment-->
')
誰もがより良いアイデアを持っていますか? ここで何か不足していますか?
SQL Server 2008 Enterprise (x64) を使用しています