Как удалить все таблицы в базе данных с помощью SqlCommand? - PullRequest
1 голос
/ 08 апреля 2010

В отличие от других постов о задаче «удалить все таблицы», этот вопрос конкретно касается использования SqlCommand для доступа к базе данных.

Сотрудник сталкивается с проблемой, что независимо от того, как он это пытается,он не может удалить все таблицы из базы данных через SqlCommand.Он заявляет, что не может выполнять такие действия, пока существует активное соединение - соединение самой SqlCommand.

Я считаю, что это должно быть возможным и легким, но у меня не так многоПодсказка о базах данных, поэтому я пришел сюда, чтобы спросить.Было бы здорово, если бы вы могли привести пример короткого кода на C # (или на любом другом языке .NET, если на то пошло).

Если вам требуется дополнительная информация, просто оставьте комментарий.

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Если вы хотите удалить таблицы без удаления базы данных, вы также можете использовать следующую команду:

exec sp_MSforeachtable 'DROP TABLE ?'

Помните, что сначала вам нужно отключить / удалить все ограничения внешнего ключа, иначе он, скорее всего, потерпит неудачу.

0 голосов
/ 08 апреля 2010

Вам либо нужно выполнить команду DROP DATABASE - подключитесь к базе данных «master» на рассматриваемом сервере, а затем введите команду

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);   
        }
    }
}

Или тогда вам нужно перебрать все таблицы - нет единой команды для удаления всех таблиц одновременно.Кроме того, при отбрасывании таблиц вам может понадобиться сначала удалить ограничения и индексы.

Отбрасывание всего - задача не из легких!

...