如何通过批处理文件执行存储过程或查询,并通过批处理文件将结果发送到电子邮件中

时间:2016-01-20 15:53:14

标签: sql file batch-file

我可以通过批处理文件执行查询并将其发送到文件夹,但我需要将结果发送到电子邮件,我不知道如何通过批处理文件将sql查询/ sp结果发送到电子邮件中。

感谢任何建议和帮助。

由于

1 个答案:

答案 0 :(得分:0)

听起来你正在执行你的SQL查询,我猜测它会把它转储到一个文本文件中(让我们说是output.txt)。我假设Windows而且我假设SQL Server,因为你没有指定。答案如下,但我想提供两种选择:

选项1:设置SQL Server以发送您的电子邮件,这将带来多种好处,包括:

  • SQL Agency可以控制日程安排&登录
  • 您获得了SQL-Only解决方案
  • 电子邮件是集中管理的,而不是在一堆不同的批处理文件中。

在SQL中设置电子邮件并不困难,这里有清楚的解释:

How to send email from SQL Server?

选项2:使用PowerShell进行SQL调用。

您的问题的答案(如下)使用PowerShell发送电子邮件。由于您将使用PS,因此您也可以使用PS来进行数据库调用。您可以找到数百个如何从PS调用SQL的示例。

最后你要求的答案......

如果你想继续使用命令行解决方案(也许你必须启动一堆非SQL命令),你需要使用PowerShell(假设你不想开始制作东西)复杂,就像写自己的.exe)。

步骤1:使用:

读取查询(output.txt)的内容

$sqlOutput = Get-Content Output.txt -Raw

第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