【发布时间】:2016-01-20 15:53:13
【问题描述】:
我可以通过批处理文件执行查询并将其发送到文件夹,但我需要将结果发送到电子邮件,我不知道如何通过批处理文件将 sql 查询/sp 结果发送到电子邮件中。
感谢任何建议和帮助。
谢谢
【问题讨论】:
-
什么数据库(mysql、sql server等)?如果是 SQL Server,您可以使用 sp_send_dbmail
标签: sql file batch-file
我可以通过批处理文件执行查询并将其发送到文件夹,但我需要将结果发送到电子邮件,我不知道如何通过批处理文件将 sql 查询/sp 结果发送到电子邮件中。
感谢任何建议和帮助。
谢谢
【问题讨论】:
标签: sql file batch-file
听起来您正在执行 SQL 查询,我猜想将其转储到文本文件(比如说 output.txt)。我假设是 Windows,我假设是 SQL Server,因为您没有指定。答案如下,但我想提供两个选项:
选项 1:设置 SQL Server 以发送您的电子邮件,这将有几个好处,包括:
在 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 作为电子邮件的正文。这是一个很好的演练:
第 3 步:如果要将文件作为附件附加,可以使用此处的示例:
https://msdn.microsoft.com/en-us/library/system.net.mail.attachment(v=vs.110).aspx
【讨论】: