Sql-Server-2005
創建 SQL 作業以發送 Excel 格式的電子郵件
我不擅長 SQL,需要一些幫助。我有一個 SQL2005 伺服器,我創建了一個作業來發送帶有 CSV 附件的電子郵件。我的工作執行良好,但我需要最終結果是 .xls 或 .xlsx 格式的 Excel 文件。
這是作業的程式碼:
USE My_DB GO EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBMail' ,@recipients = 'me@my_org.com' ,@copy_recipients = '' ,@execute_query_database = 'My_DB' ,@query = 'exec MY_RPT_MonthlyWIPSp' --@body =@bodyContent ,@subject = 'Monthly WIP Report' ,@attach_query_result_as_file = 1 ,@query_attachment_filename = 'result.csv' ,@query_result_separator=',',@query_result_width =32767 ,@query_result_no_padding=1;
我需要更改什麼以及在哪里以我需要的格式獲取數據?我必須修改我的SP嗎?
tl; dr我認為您想要的不是您可用工具的選項。
我不相信使用 SQL 2005 可以將數據導出為 .xls 或 .xlsx 格式。
多年來,我嘗試使用幾種不同的工具來做到這一點。我沒有選擇不同工具的選項。
無論如何,對於大多數視窗設備,打開 .csv 文件都會在 Excel 中打開它。通常 .csv 文件在物理上比 .xls 或 .xlsx 文件要小,因此將其保留為 .csv 有一些好處。
獲得 .csv 文件後,您可以使用 Excel 打開它並將其另存為 .xls 或 .xlsx。我認為這是你唯一的選擇。
更新這不在問題的參數範圍內,但值得一提:有一個 PowerShell 模組dfinke/ImportExcel,即使您的機器上沒有 Excel,也可以將表格數據轉換為 Excel,並放入文件夾中。我在Dbatools的展示中看到了這一點,它看起來非常有趣。