sp_send_dbmail이 성공했지만 때때로 실패함

sp_send_dbmail이 성공했지만 때때로 실패함

Stack Overflow에도 게시되어 있습니다. 어떤 피드백이라도 주시면 감사하겠습니다.

여러 개의 이메일을 보내려면 SQL 작업이 필요했는데, 어떤 해결 방법도 찾을 수 없는 이 오류가 발생했습니다. 이런 식으로 이메일을 보내면 테스트할 때마다 성공합니다.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AzureManagedInstance_dbmail_profile',
@recipients = '*Valid Email Address*',
@body = 'test',
@subject = 'Testing';

이메일에 쿼리를 추가하면 가끔 작업이 실패합니다.

나는 코드 조각을 꺼내서 문제를 복제하는 SELECT 쿼리를 단순화했습니다.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AzureManagedInstance_dbmail_profile',
@recipients = '*Valid Email Address*',
@body = 'test',
@query = 
'
SELECT GETDATE()
',
@subject = 'Testing';

이것을 실행하면 날짜 시간이 포함된 이메일이 성공적으로 전송됩니다. 코드를 다시 실행하면 일반 오류가 발생하지만 항상 그런 것은 아닙니다.

오류 번호 -2147467259로 인해 sqlcmd 라이브러리를 초기화하지 못했습니다.

SQL Server Profiler를 사용하여 조사한 결과 이 ​​오류 메시지가 나타났습니다.

연결을 연 보안 주체가 이후에 새 보안 컨텍스트를 가정하고 가장된 보안 컨텍스트에서 연결을 재설정하려고 했기 때문에 연결이 삭제되었습니다. 이 시나리오는 지원되지 않습니다. 온라인 설명서의 "가장 개요"를 참조하세요.

현재 SA 계정을 사용하고 있지만 최소한의 실행 가능한 권한으로 시작했습니다.

일반 이메일 프로필에서 작업을 실행해 보았지만 결과는 동일했습니다.

이 코드를 실행하는 작업은 내가 찾을 수 있는 뚜렷한 이유 없이 성공하거나 실패할 수도 있습니다. 작업이 성공적으로 실행되는지 여부에 대한 패턴도 없는 것 같습니다.

이 문제를 발견하고 해결한 사람이 있나요? 아니면 누구든지 이 문제를 해결하기 위한 방향을 알려줄 수 있나요?

답변1

@query_result_header으로 설정해 보십시오 .0@query_no_truncate1

@query_result_header = 1
@query_no_truncate = 0

query_result_header쿼리 결과에 열 헤더가 포함되는지 여부를 지정합니다.

'query_result_header' 값은 "비트" 유형입니다. 값이 1이면 쿼리 결과에 열 헤더가 포함됩니다. 값이 0이면 쿼리 결과에 열 머리글이 포함되지 않습니다. 이 매개변수의 기본값은 1입니다(@query가 지정된 경우에만 적용 가능).

관련 정보