0

.bat ファイルから SQL クエリを実行したい。.bat ファイルと .sql ファイルを作成し、.bat ファイルから .sql ファイルを呼び出す方法を理解しました。私の質問は、その出力を任意の場所に保存してから、電子メールで送信する方法です。

私の現在の.batは次のようになります

osql -S <ServerName> -U <User Name> -P <Password> < mysqlfile.sql

...そして、私の .sql ファイルは以下のクエリを実行します

select * from sysssislog where event='onerror' order by starttime desc

あなたの助けに感謝。

4

2 に答える 2

2

ここに示すように、SQL Server 2008 データベース メールをセットアップできます。

次に、ここに示すように、クエリの結果を電子メールで送信できます

于 2013-04-25T00:14:24.973 に答える
0

それにはBlatまたは VBscript を使用します。

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 を作成するバッチ ファイルを次に示します。

@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
于 2013-04-25T15:24:31.243 に答える