public void CreateTables(string ddl) { var statements = ScriptTools.SplitScript(ddl); using (var con = CreateConnection()) { using (var cmd = con.CreateCommand()) { cmd.Connection = con; con.Open(); //break dll into separate statements and execute them. foreach (var batch in statements) { foreach (var statement in ScriptTools.SplitBySemicolon(batch)) { //ignore the drop table bit, which has no useful commands if (statement.StartsWith("-- DROP TABLE", StringComparison.OrdinalIgnoreCase)) { continue; } if (statement.StartsWith("-- ALTER TABLE", StringComparison.OrdinalIgnoreCase)) { continue; } cmd.CommandText = statement; cmd.ExecuteNonQuery(); } } } } }
private static void Execute(DbCommand cmd, string statements) { foreach (var statement in ScriptTools.SplitBySemicolon(statements)) { Console.WriteLine("Executing " + statement); cmd.CommandText = statement; cmd.ExecuteNonQuery(); } }
private static void Execute(DbCommand cmd, string sql) { //we need to strip out the "GO" parts from these scripts AND by ; foreach (var batch in ScriptTools.SplitScript(sql)) { foreach (var statement in ScriptTools.SplitBySemicolon(batch)) { Console.WriteLine("Executing " + statement); cmd.CommandText = statement; cmd.ExecuteNonQuery(); } } }