2012-02-16 121 views
1

我想通过链接服务器从sql server 2008发送电子邮件。 我配置使用链接的服务器: -无法连接sql作业代理与链接服务器

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='[email protected]', 
@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作业代理发送,它表明: -

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

,当我解析的查询,它显示了命令成功解析。

回答

2

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

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

sp_send_dbmail (Transact_SQL)