Невозможно соединить агент заданий sql со связанным сервером - PullRequest
1 голос
/ 16 февраля 2012

Я хочу отправлять электронные письма с sql server 2008 через связанный сервер.Я настроил Связанный сервер, используя: -

EXEC sp_addlinkedserver N'linkedserver.com',N'SQL Server';
EXEC sp_addlinkedsrvlogin 'linkedserver.com', 'false','sa' , 'user', 'Pwd';

Он успешно соединен.

EXEC msdb.dbo.sp_send_dbmail 
@profile_name='Profile name',
@recipients='divyansh@gmail.com',
@subject='Test message',
@body='This is the body of the test message.
Congrates Database Mail Received By you Successfully.',
@query = 'select top 10 * from [linkedserver.com].[comm].[dbo].[tbl_mobilereporting] order by visit_date desc'

Отлично работает.Но проблема в том, что когда я пытаюсь отправить его через sql server job agent, он показывает: -

NT AUTHORITY\SYSTEM. Error formatting query.probably invalid parameters [SQLSTATE 42000] (Error 22050).The step failed.

, и когда я анализирую запрос, он показывает, что команда успешно проанализирована.

1 Ответ

2 голосов
/ 16 февраля 2012

Логин подключенного сервера настроен для sa. Убедитесь, что задание агента запущено как sa, или добавьте логин связанного сервера для правильного локального логина.

Пример выглядит так, как будто он был упрощен и имеет дополненные значения. Если это так, попробуйте создать запрос в переменной nvarchar (max), а затем передать его в @query. Обратите внимание, что запрос выполняется в отдельном сеансе, поэтому локальные переменные в скрипте, вызывающем sp_send_dbmail, недоступны для запроса.

sp_send_dbmail (Transact_SQL)

...