3

如何让我的代码在执行 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();

}
4

1 回答 1

2

将 ExecuteNonQuery 包装在 try/catch 块中,并将 catch 块留空。

于 2013-05-28T15:04:42.590 回答