Я использую C # и доступ к БД. В mysql есть оператор для удаления таблицы, как показано ниже:
drop table if exists t_table
Так вы знаете подобное утверждение для Access?
Я не знаю, как это происходит в SQL-статистике в Access. Вы можете, однако, выполнить одно из следующих действий:
Попробуйте сбросить таблицу безпроверка, если существует, перехват исключения (он должен иметь определенный код, если таблица не найдена) и игнорирование его.
Попробуйте проверить в Access скрытую таблицу MSysObjects, если таблица существует (однако с ADO она не имеет разрешения по умолчанию)
Использовать кодкак показано ниже (плохо: удаление таблицы не возвращает затронутые записи):
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.JET.OLEDB.4.0;data source=c:\myDatabase.mdb")) { conn.Open(); string tableToDelete = "myTable"; //table name bool tableExists = false; DataTable dt = conn.GetSchema("tables"); foreach (DataRow row in dt.Rows) { if (row["TABLE_NAME"].ToString() == tableToDelete) { tableExists = true; break; } } if (tableExists) { using (OleDbCommand cmd = new OleDbCommand(string.Format("DROP TABLE {0}", tableToDelete), conn)) { cmd.ExecuteNonQuery(); MessageBox.Show("Table deleted"); } } else MessageBox.Show(string.Format("Table {0} not exists", tableToDelete)); }