Могу ли я выбрать из таблицы #temp определение атрибута @query для dbmail? - PullRequest
0 голосов
/ 15 октября 2019

Я получаю сообщение об ошибке, когда пытаюсь прикрепить запрос к сообщению электронной почты. Запрос извлекается из временной таблицы. Письмо отлично работает без вложений.

Я попытался добавить в @query_result_header = 1, что является рекомендуемым исправлением этой ошибки.

exec msdb.dbo.sp_send_dbmail @profile_name = 'data.production ',

.......

,@query = 'select *
          from #pcpInfo
          order by pcp',
@attach_query_result_as_file=1,
@query_attachment_filename = 'MemberAttrition.csv',
@query_result_separator = ',',
@query_result_header = 1

Я ожидал, что письмо придет с вложенным файлом csv, но вместо этого я получаю следующую ошибку вывода: «Не удалось инициализировать библиотеку sqlcmd с номером ошибки -2147467259«. Есть предложения?

1 Ответ

0 голосов
/ 15 октября 2019

Примерно так должно работать:

Create table ##pcpInfo
(
    ID int
)
Insert into ##pcpInfo (ID)
Values (1)

exec msdb.dbo.sp_send_dbmail @profile_name = 'data.production',
@recipients = 'Email@Email.com'
,@query = 'select id
          from ##pcpInfo',
@attach_query_result_as_file=1,
@query_attachment_filename = 'MemberAttrition.csv',
@query_result_separator = ',',
@query_result_header = 1,
 @exclude_query_output = 0


Drop Table ##pcpInfo

Это меняет вашу временную таблицу на глобальную таблицу, я проверил это, и это работает для меня.

Редактировать

Вам также необходимо удалить пункт заказа.

...