也發佈在堆疊溢位中。任何反饋將不勝感激。
我需要一個 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';
當我運行此程式碼時,它成功地向我發送了一封包含日期時間的電子郵件,如果我再次運行程式碼,我會收到一般錯誤,但並非總是如此。
無法初始化 sqlcmd 函式庫,錯誤號碼為 -2147467259。
我用 SQL Server Profiler 做了一些挖掘,發現了這個錯誤訊息
連接已被刪除,因為打開它的主體隨後採用了新的安全上下文,然後嘗試在其模擬的安全上下文下重置連接。不支援這種情況。請參閱聯機叢書中的「模擬概述」。
我目前使用 SA 帳戶,但從最小的可行權限開始。
我嘗試在通用電子郵件設定檔下執行該作業,得到相同的結果。
運行此程式碼的作業會成功或失敗,而我找不到明顯的原因。作業是否成功運作似乎也沒有任何模式。
有沒有人遇到過這個問題並設法解決它?或者有人能夠指出我解決這個問題的方向嗎?
答案1
嘗試設定@query_result_header
為0
和@query_no_truncate
到1
。
@query_result_header = 1
@query_no_truncate = 0
query_result_header
指定查詢結果是否包含列標題。
“query_result_header”值的類型為“bit”。當值為1時,查詢結果包含列標題。當值為0時,查詢結果不包含列標題。此參數預設為 1(並且僅在指定 @query 時適用)。