यह आपके क्वेरी परिणाम को एक csv के रूप में संलग्न करेगा, यदि आप उस प्रारूप को पसंद करते हैं तो बस इसे filename.xls में बदल दें। मुझे लगता है कि सीएसवी बेहतर काम करता है, एक्सेल के साथ आपको यह कहते हुए एक चेतावनी मिल सकती है कि फ़ाइल एक्सटेंशन द्वारा निर्दिष्ट से भिन्न प्रारूप में है।
इसके अलावा मैंने क्वेरी परिणाम विभाजक के लिए CHAR(9) या TAB का उपयोग किया है, आप इसे बदल सकते हैं जो आपके लिए काम करता है।
मैंने आपकी क्वेरी में SET NOCOUNT ON भी जोड़ा है, यदि आपके पास वह नहीं है तो आपको आपकी एक्सेल फ़ाइल के अंत में (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