2017-11-07 9 views
1

この質問は、改行やキャリッジリターンによってSQLグリッドの結果がExcelにコピーされ、行分割の問題が発生し、結果が途切れる次の行で始まった。SQL Email to CSV、結果に行分割問題があります

Name  Order# Date  PartDescription  Store  Phone# 
----  ------- ------  ---------------- -----  ----------- 
Tom's 3181  10/7/2017 SB4356 Artwork... Downtown 208.452.6354 

ではなく、私がExcelにSQLグリッド結果をコピーするときしかし、この問題は発生しません。この

Name  Order# Date  PartDescription  Store  Phone# 
----  ------- ------  ---------------- -----  ----------- 
Tom's 3181  10/7/2017 SB4356 Artwork... Downt 
own  2080.452.6354 

のようになります。この問題は、SQLを動的SQLとして実行し、結果をCSV経由で自分宛に電子メールで送信したときに発生します。私はここの違いが何であるか分かりません。問題は、Part Descriptionフィールド、通常は100以上のユーザー入力文字に分離できます。そのフィールドを削除しても、これは起こりません。

私がやって試してみた:

LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(PartDescription, CHAR(13), ''), CHAR(10), ' '), CHAR(9), ' '), ',', ' '))) 

と小さなステップでそれを試してみましたが、それは何の効果もなかったです。私が言ったように、それはExcelに結果をコピーして動作します。ちょうど私がCSVにそれを電子メールするときではない。私は本当に不可能な挑戦者がこれを引き起こしているかも知れないかもしれないと分かっているのかどうかは分かりません。

私はこの方法を使用して、以前は他の人の自動レポートを修正しました。これは頑固です。 SQLはSQL Serverエージェントで動的に実行され、結果はcsv形式で電子メールで送信されます。また、SQLをビューに保存しようとしましたが、動的SQLのビューを楽しく変更しませんでした。

+0

「SQL結果をExcelにコピーする」とは、SSMSグリッドからコピーすることを意味しますか?誰も本当にこれに答えることはできません - それはかなり曖昧です。式を通過しても電子メールに改行が現れる改行を使用してデータを分離できますか? –

+0

コピーは、SSMSグリッドからのコピー/ペーストを指します。私は問題の内容を完全に理解していないときに、その記述をよりわかりやすくする方法がわかりません。孤立したデータ行で質問を更新し、問題をより詳しく説明してみましょう – BWoods

答えて

1

同じ問題があった場合、255文字を超えたときに改行されたことが判明しました。あなたのPartDescriptionフィールドに多くの文字がある場合は、同じ問題があるかもしれないと思います。あなたはオプションで追加する場合は、sp_send_dbmailを使用していると仮定すると:あなたが必要と

@query_result_width=500 

または何の幅を、それはそれを修正する必要があります。

+1

私はそれを試してみる必要があります!問題を解決するかもしれないし、修正しないかもしれないが、そうでなければ見つけられた以上のものだ。 – BWoods

関連する問題