Това ще прикачи резултата от вашата заявка като csv, просто го променете на filename.xls, ако предпочитате този формат. Мисля, че csv работи по-добре, с excel може да получите предупреждение, че файлът е във формат, различен от зададения от разширението.
Също така използвах CHAR(9) или TAB за разделител на резултатите от заявката, можете да промените това на каквото ви върши работа.
Добавих също SET NOCOUNT ON към вашата заявка, ако нямате това, ще получите (засегнати 1000 реда) (колкото и да е броят редове, които вашата заявка връща) в края на вашия excel файл.
DECLARE
@tab char(1) = CHAR(9)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = '[email protected]',
@query = 'SET NOCOUNT ON
SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1,
@query_attachment_filename='filename.csv',
@[email protected],
@query_result_no_padding=1