2016-01-20 223 views
-2

我可以通過批處理文件執行查詢,並將其發送到文件夾發送電子郵件的結果,但我需要將結果發送到電子郵件,我不確定如何通過批處理文件在電子郵件中發送sql查詢/ sp結果。如何通過批處理文件來執行存儲過程或查詢,並通過批處理文件

任何建議和幫助表示讚賞。

感謝

+0

什麼數據庫(MySQL和SQL服務器等)?如果SQL Server,你可以利用sp_send_dbmail – SQLChao

回答

0

這聽起來像你執行你的SQL查詢,我猜它傾倒到一個文本文件(假設output.txt的)。我假設Windows和我假設SQL Server,因爲你沒有指定。答案是下面的,但我想提供兩個選項,而不是:

選項1:安裝SQL Server發送電子郵件這將有幾個好處,包括:

  • SQL機構可以控制調度&記錄
  • 你得到一個SQL的獨家解決方案
  • 電子郵件是集中管理的,而不是在一堆不同的批處理文件之中。

不難設置電子郵件在SQL這裏是清楚的解釋:

How to send email from SQL Server?

選項2:使用PowerShell來讓你的SQL調用。

的回答你的問題(下)使用PowerShell來發送電子郵件。既然你用PS的,你還不如用PS讓你的數據庫調用。你可以找到數百個如何從PS調用SQL的例子。

最後,你問的...答案

如果你想繼續使用命令行的解決方案(也許你踢一串非SQL命令的),您需要使用PowerShell (假設你不想讓事情變得複雜,就像編寫你自己的.exe一樣)。

STEP 1:用閱讀查詢(output.txt中)的內容:

$sqlOutput = Get-Content Output.txt -Raw

STEP 2:使用$sqlOutput作爲電子郵件的正文。這裏有一個很好的演練:

http://www.howtogeek.com/120011/stupid-geek-tricks-how-to-send-email-from-the-command-line-in-windows-without-extra-software/

步驟3:如果你想將文件附加作爲附件,您可以使用這裏的例子:

https://msdn.microsoft.com/en-us/library/system.net.mail.attachment(v=vs.110).aspx

+0

好吧,我試過了太..我創建我的帳戶和個人資料數據庫郵件,當我執行它說:「郵件已排隊」,當我檢查日誌文件我得到的消息如下: 郵件由於郵件服務器故障而無法發送給收件人。異常消息:無法連接到郵件服務器。(連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或者由於連接的主機未能響應而建立的連接失敗)我在這裏丟失了什麼?謝謝 –

+0

因此,連接到郵件服務器時出現問題。有三個可能的問題。 (1)你有錯誤的服務器;您需要指向設置爲處理SMTP的服務器。 (2)通常服務器將被「鎖定」,因此它們不被用於垃圾郵件。這可能是因爲(a)您的證書不正確或(b)您發送的服務器/ IP需要被SMPT服務器列入白名單。由於事情在各種賬戶下運行,SQL的東西可能會很棘手。你可以嘗試讓其他解決方案之一工作,以便你知道你可以發送電子郵件,然後嘗試獲得SQL設置。 –

相關問題