SP_Send_Dbmail, содержащий запятую - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь отправить файлы csv через sp_send_dbmail, и в одном из полей (результат) есть запятые. При выполнении кода ниже, он будет автоматически разделять некоторые результаты в виде двух столбцов.

Я пытался изменить @query_result_separator, но тогда он вообще ничего не отделил бы, кроме поля результатов, которое в итоге дает мне два столбца.

declare @filename NVARCHAR(MAX) 
DECLARE @prefix varchar(50)
DECLARE @q varchar(max)
DECLARE @body NVARCHAR(MAX)

SET @body = 'abc'

SET @filename = concat('abc_',replace(cast(cast(getdate() as date) as varchar),'-','_'),'.csv')  

SET @prefix = '[sep=,' + CHAR(13) + CHAR(10) + 'ID]'

SET @q ='set nocount on; select right(''"=""'' + cast(ID as nvarchar) + ''"""'', 24)' + @prefix + ',Outcome, isnull(cast(Outcomedate as varchar),'''') as OutcomeDate,isnull(cast(Alerts as varchar),'''') as Alerts
from database.abc.defg'


EXEC msdb.dbo.sp_send_dbmail  
@body = @body,  
@body_format ='HTML',    
@recipients = 'abc@defg.com',
@subject = 'abc',  
@query = @q ,
@attach_query_result_as_file = 1,  
@query_attachment_filename = @filename,  
@query_result_separator = ',',  
@query_result_no_padding = 1,  
@query_result_width = 500;
...