Рейтинг:0

sp_send_dbmail выполняется успешно, но иногда не удается

флаг in

Также опубликовано в Stack Overflow. Любая обратная связь будет высоко оценена.

Мне нужно задание SQL для отправки нескольких электронных писем, и я столкнулся с этой ошибкой, для которой я не могу найти никаких решений. Когда я отправляю электронные письма таким образом, это удается каждый раз, когда я тестировал.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AzureManagedInstance_dbmail_profile',
@recipients = '*Действительный адрес электронной почты*',
@тело = 'тест',
@subject = 'Тестирование';

Когда я иногда добавляю запрос в электронное письмо, задание завершается ошибкой.

Я вытащил фрагмент и упростил запрос SELECT, который повторяет проблему.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AzureManagedInstance_dbmail_profile',
@recipients = '*Действительный адрес электронной почты*',
@тело = 'тест',
@запрос = 
'
ВЫБЕРИТЕ ПОЛУЧИТЬ ДАТУ ()
',
@subject = 'Тестирование';

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

Не удалось инициализировать библиотеку sqlcmd с номером ошибки -2147467259.

Я немного покопался в SQL Server Profiler и наткнулся на это сообщение об ошибке.

Соединение было разорвано, поскольку открывший его участник впоследствии принял новый контекст безопасности, а затем попытался сбросить соединение в олицетворенном контексте безопасности. Этот сценарий не поддерживается. См. «Обзор олицетворения» в электронной документации.

В настоящее время я использую учетную запись SA, но начал с минимальными жизнеспособными привилегиями.

Я попытался запустить задание под общим профилем электронной почты с теми же результатами.

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

Кто-нибудь сталкивался с этой проблемой и смог ее решить? Или кто-нибудь может указать мне направление, чтобы решить эту проблему?

Рейтинг:0
флаг cn

Попробуйте установить @query_result_header к 0 и @query_no_truncate к 1.

@query_result_header = 1
@query_no_truncate = 0

query_result_header указывает, включают ли результаты запроса заголовки столбцов.

Значение «query_result_header» имеет тип «бит». Если значение равно 1, результаты запроса содержат заголовки столбцов. Если значение равно 0, результаты запроса не включают заголовки столбцов. Этот параметр по умолчанию равен 1 (и применим, только если указан @query).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.