public void RunSqlScript(FileInfo fileWithSqlScript, params Func <string, string>[] lineFilters) { ArgumentValidator.ThrowIfDoesNotExist(fileWithSqlScript, "fileWithSqlScript"); using (var sr = fileWithSqlScript.OpenText()) { var sb = new StringBuilder(512); while (!sr.EndOfStream) { var nextLine = sr.ReadLine(); for (var i = 0; i < lineFilters.Length; i++) { nextLine = lineFilters[i](nextLine); } if (rgxGo.IsMatch(nextLine)) { if (0 < sb.Length) { ExecuteNonQuery(sb.ToString()); } sb.Length = 0; } else { sb.AppendLine(nextLine); } } if (0 < sb.Length) { ExecuteNonQuery(sb.ToString()); } } }