无法将sql作业代理与链接服务器连接

时间:2012-02-16 10:27:50

标签: sql-server-2008 linked-server

我想通过链接服务器从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 个答案:

答案 0 :(得分:2)

为sa设置链接服务器登录。检查代理作业是否以sa身份运行,或者为正确的本地登录添加链接服务器登录。

示例看起来已经简化并且补充了值。如果是这样,请尝试在nvarchar(max)变量中创建查询,然后将其传递给@query。 请注意,查询是在单独的会话中执行的,因此调用sp_send_dbmail的脚本中的局部变量不可用于查询。

sp_send_dbmail (Transact_SQL)