2012-02-16 119 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)