如何删除使用SqlCommand的数据库中所有表?(How do I delete all tabl

2019-09-29 06:51发布

与有关任务的其他职位“删除所有表”,这个问题是专门关于使用SqlCommand访问数据库。

的同事,正面临着再怎么尝试,他无法通过SqlCommand的数据库中删除所有表的问题。 他说,他不能,只要有活动的连接来执行这样的行动 - 由SqlCommand的本身的连接。

我相信这应该是可能的和容易的,但我没有太多关于数据库的线索,所以我来这里问。 这将是真棒,如果你能在C#提供了一个简短的代码示例(或任何.NET语言,对于这个问题)。

如果您需要了解更多信息,只是发表评论。

Answer 1:

你要么需要发出DROP DATABASE命令 - 连接到有问题的服务器上的“主”数据库,然后发出

DROP DATABASE (your database)

命令。

就像是:

using (SqlConnection con = new SqlConnection("server=yourserver;database=master;integrated security=SSPI"))
{
    using (SqlCommand cmd = new SqlCommand("DROP DATABASE (your database)", con))
    {
        try
        {
            con.Open();
            int returnValue = cmd.ExecuteNonQuery();
            con.Close();
        }
        catch (Exception exc)
        {
            string errorMsg = string.Format("{0}: {1}", exc.GetType().FullName, exc.Message);   
        }
    }
}

或者,那么你需要遍历所有表 - 没有单一的命令删除所有表一次。 此外,删除表时,你可能需要先删除约束和索引。

删除一切不完全是一件容易的事!



Answer 2:

如果要删除的表不丢弃你也可以使用下面的命令数据库:

exec sp_MSforeachtable 'DROP TABLE ?'

要注意的是,你必须先禁用/删除所有外键约束,否则很可能会失败。



文章来源: How do I delete all tables in a database using SqlCommand?