Мне было поручено создать список умерших пользователей, которые нам нужно архивировать во внутреннем приложении.
Я написал оператор выбора (SQL Server 2012), и он отлично работает.Я могу получить электронное письмо для отправки от EXEC sp_send_dbmail
, но в письме есть только строка, которую я указал в теле.Когда я изменяю информацию @body
, она все равно использует исходную строку, которую я ввел.Это не меняет того, что я там добавил, и я не могу заставить его отправить результаты Select
.
Вот что у меня есть:
Set @Results = 'SELECT p.UID
,p.EMPNO
,p.FULLNAME AS FULL_NAME
,p.Archived
,p.COMPANY
,p.EMAIL
,p.SID
,e.TERMCODE AS TERM_CODE
,CONVERT(VARCHAR, e.FIREDATE, 101) AS FIRE_DATE
FROM app_table p
LEFT OUTER JOIN employee_table e ON e.EMPNO=p.EMPNO
WHERE p.EMPNO IS NOT NULL
AND p.ARCHIVED = 0
AND e.FIREDATE IS NOT NULL
ORDER BY e.FIREDATE DESC'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQL_Mailer',
@recipients = 'my.address@myemail.com',
@subject = 'Departed Users being archived',
@body = @Results
END
Я также попытался добавить @query
к sp_send_dbmail
и поместить Select
в @query
: @query = 'Select statement above'
Что мне не хватает?