与有关任务的其他职位“删除所有表”,这个问题是专门关于使用SqlCommand
访问数据库。
的同事,正面临着再怎么尝试,他无法通过SqlCommand的数据库中删除所有表的问题。 他说,他不能,只要有活动的连接来执行这样的行动 - 由SqlCommand的本身的连接。
我相信这应该是可能的和容易的,但我没有太多关于数据库的线索,所以我来这里问。 这将是真棒,如果你能在C#提供了一个简短的代码示例(或任何.NET语言,对于这个问题)。
如果您需要了解更多信息,只是发表评论。
与有关任务的其他职位“删除所有表”,这个问题是专门关于使用SqlCommand
访问数据库。
的同事,正面临着再怎么尝试,他无法通过SqlCommand的数据库中删除所有表的问题。 他说,他不能,只要有活动的连接来执行这样的行动 - 由SqlCommand的本身的连接。
我相信这应该是可能的和容易的,但我没有太多关于数据库的线索,所以我来这里问。 这将是真棒,如果你能在C#提供了一个简短的代码示例(或任何.NET语言,对于这个问题)。
如果您需要了解更多信息,只是发表评论。
你要么需要发出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);
}
}
}
或者,那么你需要遍历所有表 - 没有单一的命令删除所有表一次。 此外,删除表时,你可能需要先删除约束和索引。
删除一切不完全是一件容易的事!
如果要删除的表不丢弃你也可以使用下面的命令数据库:
exec sp_MSforeachtable 'DROP TABLE ?'
要注意的是,你必须先禁用/删除所有外键约束,否则很可能会失败。