首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储sql查询输出,并通过电子邮件将其发送到DL或特定的电子邮件ID

问存储sql查询输出,并通过电子邮件将其发送到DL或特定的电子邮件ID
EN

Stack Overflow用户
提问于 2013-04-25 06:57:18
回答 2查看 1.6K关注 0票数 0

我想从.bat文件中运行sql query。我知道如何创建一个.bat文件和.sql文件,然后从.bat文件调用.sql文件。我的问题是,如何将其输出存储在任何位置,然后将其发送到电子邮件。

我当前的.bat看起来像这样

代码语言:javascript
复制
osql -S <ServerName> -U <User Name> -P <Password> < mysqlfile.sql

...And我的.sql文件运行以下查询

代码语言:javascript
复制
select * from sysssislog where event='onerror' order by starttime desc

感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-04-25 08:14:25

您可以设置SQL Server2008数据库邮件,如here所示

然后,您可以通过电子邮件发送查询结果,如here所示

票数 2
EN

Stack Overflow用户

发布于 2013-04-25 23:24:31

我会使用Blat或VBscript来完成此操作。

代码语言:javascript
复制
osql -S <ServerName> -U <User Name> -P <Password> -o Out.txt < mysqlfile.sql
Blat out.txt -to <recipient> -s <subject> -server <ip or hostname of SMTP server:<port> 

下面是一个批处理文件,它创建了一个VBScript来执行此操作。

代码语言:javascript
复制
@echo off
setlocal

if exist "out.txt" del "out.txt"
osql -S Server -U user -P password -o Out.txt < mysqlfile.sql
set vbs_=Email.vbs
set skip=
findstr "'%skip%VBS" "%~f0" > "%vbs_%"
cscript //nologo "%vbs_%"
ping -n 3 localhost>nul
if exist "%vbs_%" del "%vbs_%"
goto :eof

 Const ForReading = 1, ForWriting = 2                      'VBS
 sFile="Out.txt"                                           'VBS
 Set oFso = CreateObject("Scripting.FileSystemObject")     'VBS
 Set oFile = oFso.OpenTextFile(sFile, ForReading)          'VBS
 Set oMail=CreateObject("CDO.Message")                     'VBS
 sSchema="http://schemas.microsoft.com/cdo/configuration/" 'VBS
     with oMail.Configuration.Fields                       'VBS
     .Item(sSchema & "sendusing")= 2                   'VBS  
     .Item(sSchema & "smtpserver")= "YourServer"       'VBS
     .Item(sSchema & "smtpserverport") = 25              'VBS 
     .Update                                           'VBS                                              
     end with                                              'VBS 
 oMail.Subject="SQL Log"                                   'VBS
 oMail.From="email@domain.com"                             'VBS
 oMail.To="Sendto@someother.com"                           'VBS
 oMail.TextBody = oFile.ReadAll                            'VBS 
 oMail.Send                                                'VBS
 oFile.Close                                               'VBS 
 set oMail=nothing                                         'VBS
 set oFile = Nothing                                       'VBS
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16203630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档