0
我試圖根據查詢結果中找到的用戶ID輸入電子郵件地址, 查詢查找違反系統的用戶,並使用那些我們希望查詢另一個表的Ids,以獲得完整的電子郵件地址並將它們放入作爲收件人。如何將電子郵件發送到從動態查詢結果中獲取的地址?
新的錯誤 「消息14624,級別16,狀態1,過程sp_send_dbmail,238線 以下參數必須指定的至少一個。 」@recipients,@copy_recipients,@blind_copy_recipients「。 」
更新的代碼。
declare @bodymsg nvarchar(max)
select @bodymsg = '<font face="calibiri" size="4" >Dear Users</font><br><br>
<font face="calibiri" size="5" color="red">Please Explain the Exrta Locked Faxes</font><br><br>
<font face="calibiri" size="4" >Check the Last Hour Snapshot Details Attached.<br><br>
Thanks</font></end>'
declare @users_fetched varchar(max)
select @users_fetched = STUFF((SELECT ';' + Locked_Faxes_Last_Hour_Snap.userid from Locked_Faxes_Last_Hour_Snap
FOR XML PATH('')
), 1, 1, '')
declare @recipients varchar(max)
SELECT
@recipients = STUFF((SELECT ';' + concerned_staff.staff_email from concerned_staff where (concerned_staff.staff_id in (@users_fetched))
FOR XML PATH('')
), 1, 1, '')
EXEC msdb.dbo.sp_send_dbmail
@recipients = @recipients ,
@body= @bodymsg ,
@subject = 'Alert !!! Locked Faxes Violation Last Hour Snaps' ,
@profile_name = 'Database Profile 1',
@query = 'use qtel select * from dbo.Locked_Faxes_Last_Hour_Snap' ,
@attach_query_result_as_file = 1,
@query_attachment_filename ='Locked_Faxes_Last_Hour_Snap.csv',
@query_result_separator =',',
@query_result_no_padding=1,
@exclude_query_output=1,
@append_query_error=0,
@query_result_header =1,
@body_format ='HTML',
@importance= 'HIGH';
這個代碼引發的錯誤是什麼? –
@MarcGuillot我正在嘗試在這裏使用非動態查詢「@recipients = STUFF((SELECT';'+ concerned_staff.staff_email from concerned_staff where(concerned_staff.staff_id ='umairrizvi') FOR XML PATH('') ) 1,1,'')「 並返回此錯誤」必須聲明標量變量「@recipients」。「 –
要聲明您只需要的變量:declare @recipients varchar(max)並且要使用動態sql,您應該使用sp_executesql檢索地址https://docs.microsoft.com/en-us/sql/relational-databases/ system-stored-procedures/sp-executionql-transact-sql(看第三個例子,輸出參數) –