2015-01-12 132 views
0

我有一個查詢創建一個CSV文件,然後通過電子郵件將其發送給用戶,但CSV文件格式不正確。出於某種原因,當打開CSV文件時,出於某種未知的原因,它將我的一些行分隔成兩行。行的拆分似乎隨機完成,因爲一些行被拆分,而其他行保持不變。這是一個很難解釋的情況,下面的解釋顯示了我爲創建CSV文件並將其通過電子郵件發送給用戶以及CSV文件的結果所寫的查詢!CSV文件將我的行數據拆分爲單獨的行

EXEC msdb.dbo.sp_send_dbmail 
@profile_name='TestProfile', 
@recipients='[email protected]', 
@subject='Test message', 
@body='This is a test.', 
@query = 'Select * 
FROM (
SELECT 
    replace(LEFT(convert(NVARCHAR, getdate(), 106),6) + ''-'' + RIGHT(year(convert(NVARCHAR, getdate(), 106)),2), '' '', ''-'') as [Date], 
    FirstName, Surname,TestTime as TestTime , Percentage as Percentage, Score as Score  
FROM TestDatabase.dbo.TestingTable 
) as s 
PIVOT 
(
SUM(Score) 
FOR [TestTime] IN ([00:00],[00:30],[01:00],[01:30],[02:00],[02:30],[03:00],[03:30],[04:00],[04:30],[05:00],[05:30],[06:00],[06:30],[07:00],[07:30],[08:00],[08:30],[09:00],[09:30],[10:00],[10:30],[11:00],[11:30],[12:00],[12:30],[13:00],[13:30],[14:00],[14:30],[15:00],[15:30],[16:00],[16:30],[17:00],[17:30],[18:00],[18:30],[19:00],[19:30],[20:00],[20:30],[21:00],[21:30],[22:00],[22:30],[23:00],[23:30]) 
) Results 
', 
@query_result_separator = ' ', 
@query_result_header = 1, 
@exclude_query_output = 1, 
@append_query_error = 1, 
@attach_query_result_as_file = 1, 
@query_attachment_filename = 'test.csv', 
@query_result_no_padding = 1 

輸出

enter image description here

時,實際上它應該是這樣的:

enter image description here

底部圖像是正確的格式和首行來自00.00變到23.30如預期!

+0

通過電子郵件將文件作爲附件發送,或者您是否將內容放入電子郵件正文中? –

+0

它被作爲附件通過電子郵件發送! – user3538102

+0

好!或者看不清楚,因爲這是這種錯誤的潛在原因。事情你必須找出現在是哪裏出問題了。例如如果您只是創建文件,那麼會出現任何額外的行分隔符。如果沒有,如果你導入的文件是收件人正在做的,你是否會遇到問題等。可能是這個問題的任何數量。 –

回答

0

默認情況下,sp_send_dbmail會在任何給定行上插入256個字符後的換行符。調用存儲過程時,您可以通過指定@query_result_width參數來修改此參數。最大值爲32767.

另外:如果這應該是一個CSV文件,爲什麼是@query_result_separator = ' '而不是@query_result_separator = ','

相關問題