如果存在,如何在Access中删除表

本文关键字:Access 删除 存在 如果 | 更新日期: 2023-09-27 17:53:56

我使用c#访问数据库。
mysql中有如下语句:

drop table if exists t_table

那么你知道Access的类似语句吗?

如果存在,如何在Access中删除表


我不知道Access中这样的SQL语句。
但是,您可以执行以下操作之一:

  • 尝试删除表而不检查是否存在,捕获异常(如果没有找到表,它应该有特定的代码)并忽略它。

  • 尝试检查访问隐藏表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));
    }