Dit zal uw queryresultaat als een csv bijvoegen, verander het gewoon in bestandsnaam.xls als u de voorkeur geeft aan dat formaat. Ik denk dat csv beter werkt, met Excel kun je een waarschuwing krijgen dat het bestand een ander formaat heeft dan gespecificeerd door de extensie.
Ik heb ook CHAR (9) of TAB gebruikt voor het scheidingsteken van het queryresultaat, je kunt dat veranderen in wat voor jou werkt.
Ik heb ook SET NOCOUNT ON toegevoegd aan je zoekopdracht, als je die niet hebt, krijg je (1000 rijen beïnvloed) (ongeacht het aantal rijen dat je zoekopdracht retourneert) aan het einde van je Excel-bestand.
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