SSIS, вероятно, является подходящим вариантом, но если вы хотите, чтобы это сделал T-SQL, попробуйте это ...
Я не собираюсь писать полную программу для вас, но вот основные моменты ...
определить символ разделения:
SET @CSV=',' --use CHAR(9) for tab
построить строку CSV по одной строке за раз, просматривая результаты (сделайте это для каждой строки):
SET @FileMessage=ISNULL(CONVERT(varchar(10),column1),'')+@CSV+ISNULL(CONVERT(varchar(10),column2),'')
SET @ExecuteString = RTRIM('echo ' + @FileMessage + ' >>' + @FileName)
--append it to you file, you'll need write permissions
EXEC @ReturnValue=master..xp_cmdshell @ExecuteString, no_output
фактически отправляет почту, после того, как файл полностью собран:
EXEC xp_sendmail { [ @recipients= ] 'recipients [ ;...n ]' }
[ ,[ @message= ] 'message' ]
[ ,[ @query= ] 'query' ]
[ ,[ @attachments= ] 'attachments [ ;...n ]' ]
[ ,[ @copy_recipients= ] 'copy_recipients [ ;...n ]'
[ ,[ @blind_copy_recipients= ] 'blind_copy_recipients [ ;...n ]'
[ ,[ @subject= ] 'subject' ]
[ ,[ @type= ] 'type' ]
[ ,[ @attach_results= ] 'attach_value' ]
[ ,[ @no_output= ] 'output_value' ]
[ ,[ @no_header= ] 'header_value' ]
[ ,[ @width= ] width ]
[ ,[ @separator= ] 'separator' ]
[ ,[ @echo_error= ] 'echo_value' ]
[ ,[ @set_user= ] 'user' ]
[ ,[ @dbuse= ] 'database' ]