2016-06-16 11 views
0

ディレクトリ内のすべてのSQLファイルを実行し、エラーがある場合に実行するスクリプトのエラーを表示する方法、実行時にエラーを記録または記録する方法は?複数の/すべてのsqlファイルを実行してエラーログファイルを表示

+1

ディレクトリ内で1つのsqlファイルをどのように実行していますか?より多くの文脈を提供してください。それがあなたの疑問を表しているからです。 – Hogan

+0

バッチファイルを使用することによって、私はまだ実行しているスクリプトにエラーがあればエラーを記録する方法を表示したいと思っています。 –

+0

Ok、どのOSを使用していますか?答えは、UnixとDOSでは同じではありません。バッチファイルの内容を表示できますか?あなたがしなければ、私たちはどのように答えると思いますか? – Hogan

答えて

1

これはです。ディレクトリ内のSQLファイルを実行して、検証からマイナスの分離を行う機能です。実生活では、ファイルを見つけるための1つの関数と、ファイルのコレクションを実行するための別の関数を分けることになるでしょう。

public void ExecuteSqlFilesInDirectory(string path, string connectionString) 
    { 
     var directory = new DirectoryInfo(path); 
     var files = directory.GetFiles("*.sql"); 
     if (!files.Any()) return; 
     using (var connection = new SqlConnection(connectionString)) 
     { 
      connection.Open(); 
      foreach (var file in files) 
      { 
       var sql = File.ReadAllText(file.FullName); 
       using (var command = new SqlCommand(sql, connection)) 
       { 
        command.ExecuteNonQuery(); 
       } 
      } 
     } 
    } 

ロギングは、これと同じコンテキストで回答しようとはしません。

質問 - 実行の順序は関係しますか?もしそうなら、順序がどのように表示され、関数はシーケンスを知るでしょうか?

また、エラーがある場合はすべてロールバックする必要がありますか?

+0

実行の順序は、インポート/挿入するSQLファイルによっても異なります。うーん、シーケンスについてはgobalakrishnanはバットを使用することについて正しいです。エラーがある場合、またはログファイルまたはテキストパッドにメッセージを表示するか、エラーを表示する方法があります。 –

0

ワンクリックですべてのスクリプトを実行するには、バッチファイルを使用します。

以下に述べるように、ストアドプロシージャとビューのファイル名をすべて入れ、.bat拡張子で保存します。バッチファイルをクリックするだけで一気に実行され、エラーを監視することができます。

例:

set DBName=myDB 
set DBServer="127.0.0.1\SQLInstance" 
REM Product List Stored Procedures 
osql -E -i GetList.sql -d %DBNAME% -S %DBServer% -n 
osql -E -i InsertProduct.sql -d %DBNAME% -S %DBServer% -n 
osql -E -i UpdateProduct.sql -d %DBNAME% -S %DBServer% -n 
osql -E -i DeleteProduct.sql -d %DBNAME% -S %DBServer% -n 
pause 
+0

私もそれについて考えましたが、エラーがある場合はどうですか?どのようにログファイルやメモ帳に表示するか、実行されたスクリプトにエラーを表示する方法? –

+0

すべてのファイルが実行されたら、同じコマンドプロンプトウィンドウでエラーを確認できます。また、テキスト全体をコピーすることでこれを保存することもできます。これにより、エラーもキャプチャされます。あなたはどこにいても「一時停止」を含めることができます。これはあなたのために動作することを願っています。 – Gobalakrishnan

関連する問題