Передача хранимой процедуры в sp_send_dbmail - PullRequest
4 голосов
/ 18 марта 2009

Я использую sp_send_dbmail в SQL Server 2008 для отправки результатов запроса. Я переместил запрос в процедуру и пытаюсь использовать процедуру в процедуре sp_send_dbmail следующим образом:

EXEC msdb.dbo.sp_send_dbmail 
@profile_name               = 'myprofile',
@from_address               = 'email@somedomain.com',
@reply_to                   = 'email@somedomain.com',
@recipients                 = 'email@differentdomain.com',  
@importance                 = 'NORMAL', 
@sensitivity                = 'NORMAL', 
@subject                    = 'My Subject',
@body                       = 'Here you go.',
@attach_query_result_as_file= 1,
--@query_result_header      = 1,
@query_result_width         = 1000, 
@query_result_separator     = '~',
@query_attachment_filename  = 'myFile.txt',
@query                      = 'EXEC dbo.myProc'

Я также попробовал это, используя 4 части именования в proc; с и без 'EXEC' и т. д. Он отлично работал как запрос, но я не могу заставить его работать как процесс. Это вообще возможно?

Ответы [ 2 ]

9 голосов
/ 21 марта 2009

Вам необходимо добавить контекст базы данных:

@execute_query_database = 'MyDatabaseName',

Я только что запустил это без проблем с AdventureWorks2008:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DBMail',
    @recipients = 'mitch@domain.com',
    @query = 'exec dbo.uspGetManagerEmployees 5' ,
    @execute_query_database = 'AdventureWorks2008',
    @subject = 'Work Order Count',
    @attach_query_result_as_file = 1 ;
0 голосов
/ 18 марта 2009

Вы пытались создать пользовательскую функцию вместо хранимой процедуры?

Что-то вроде:

@query = 'select something from dbo.myFunction()'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...