2013-05-28 67 views
3

如何讓我的代碼在執行SQL腳本文件時忽略錯誤?忽略執行SQL腳本時的錯誤

如果在執行sql腳本文件時發生錯誤,那麼我希望此方法忽略它並繼續運行sql腳本文件。目前,如果我在此方法中放置try-catch塊,則會將該錯誤捕獲爲異常,並在捕獲錯誤後停止執行SQL腳本文件。即使SQL Server中存在錯誤,我也希望執行繼續。

我該如何做到這一點?

我的代碼如下。

private void RunSQLScript() 
{   
    // file is already defined as a SQL Script file 

    string script = file.OpenText().ReadToEnd(); 

    SqlConnection conn = new SqlConnection(ConnectionString); 

    // split script on GO command 
    IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$", RegexOptions.Multiline | RegexOptions.IgnoreCase); 

    conn.Open(); 

    foreach (string commandString in commandStrings) 
    { 
    if (commandString.Trim() != "") 
     { 
      new SqlCommand(commandString, conn).ExecuteNonQuery(); 
     } 
    } 

    conn.Close(); 

} 

回答

2

將ExecuteNonQuery包裝在try/catch塊中,並將catch塊留空。

+0

謝謝。工作。 這樣一個簡單的事情,我把try-catch放在整個方法上,而不僅僅是ExecuteNonQuery部分。 – Butters