これにより、クエリ結果が csv として添付されます。必要に応じて filename.xls に変更してください。 csv の方がうまく機能すると思いますが、Excel では、ファイルが拡張子で指定された形式とは異なる形式であるという警告が表示される場合があります。
また、クエリ結果の区切り記号に CHAR(9) または TAB を使用しましたが、これは自分に合ったものに変更できます。
クエリに SET NOCOUNT ON も追加しました。これがない場合は、Excel ファイルの末尾に (1000 行が影響を受けます) (クエリが返す行数に関係なく) が表示されます。
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