Также опубликовано в 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, но начал с минимальными жизнеспособными привилегиями.
Я попытался запустить задание под общим профилем электронной почты с теми же результатами.
Задание, выполняющее этот код, завершится успешно и завершится ошибкой без видимой причины, которую я могу найти. Не похоже, чтобы задание выполнялось успешно или нет.
Кто-нибудь сталкивался с этой проблемой и смог ее решить? Или кто-нибудь может указать мне направление, чтобы решить эту проблему?