- «Невозможно удалить базу данных, потому что она в настоящее время используется». Как это исправить?
- 7 ответов:
- Невозможно удалить базу данных, так как она используется
- 15 ответов
- Невозможно удалить базу данных, потому что она в настоящее время используется
- 18 ответов
- «Невозможно удалить базу данных, потому что она в настоящее время используется». Как исправить?
- 7 ответов
- «Не удается удалить базу данных, поскольку она в настоящее время используется». Как исправить?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
«Невозможно удалить базу данных, потому что она в настоящее время используется». Как это исправить?
имея этот простой код, я получаю «не могу удалить базу данных «test_db», потому что она в настоящее время используется» (метод очистки), когда я ее запускаю.
DataContext имеет одно свойство, как это
Как заставить мой код удалить базу данных? Спасибо
7 ответов:
проблема в том, что ваше приложение, вероятно, все еще имеет некоторое соединение с базой данных (или другое приложение также имеет соединение). База данных не может быть удалена при наличии любого другого открытого соединения. Первая проблема, вероятно, может быть решена путем отключения пула соединений (add Pooling=false в строку подключения) или очистить пул перед удалением базы данных (путем вызова SqlConnection.ClearAllPools() ).
обе проблемы могут быть решены путем принудительного удаления базы данных, но для этого вам нужен пользовательский инициализатор базы данных, где вы переключаете базу данных в однопользовательский режим и после этого удаляете ее. здесь это какой-то пример, как этого добиться.
Я сходил с ума от этого! У меня есть открытое соединение с базой данных внутри SQL Server Management Studio (SSMS) и табличный запрос, открытый для просмотра результатов некоторых модульных тестов. При повторном запуске тестов внутри Visual Studio я хочу, чтобы он drop база данных ДАЖЕ ЕСЛИ соединение открыто в SSMS.
вот окончательный способ избавиться от Cannot drop database because it is currently in use :
скопировал соответствующую часть здесь ради good дублирование. 🙂
если база данных уже существует, вы можете наткнуться на случай наличия ошибка. Исключение » не удается удалить базу данных, потому что она в настоящее время в использовании » может поднять. Эта проблема возникает при активном подключении остается подключенным к базе данных, это в процессе удаленный. Хитрость заключается в переопределите метод InitializeDatabase и измените базу данных. Это говорит базе данных, чтобы закрыть все соединения и если транзакция открыта для отката этого.
Это действительно агрессивный инициализатор базы данных (re) для EF code-first с миграциями; используйте его на свой страх и риск, но он, похоже, работает довольно повторяемо для меня. Это будет;
используйте его вот так;
Я также использую трюк Ladislav Mrnka ‘Pooling=false’, но я не уверен, требуется ли это или просто мера ремня и скоб. Это, безусловно, будет способствовать замедлению теста больше.
ни одно из этих решений работал для меня. Я закончил писать метод расширения, который работает:
Я пытаюсь добавить Pooling=false Как сказал Ладислав Мрнка, но всегда получал ошибку.
Я использую Среда Sql Server Management Studio и даже если я закрываю все соединения, я получаю ошибку.
Если я закрою Среда Sql Server Management Studio затем база данных будет удалена 🙂
Надеюсь, это может помочь
Я получил ту же ошибку. В моем случае я просто закрыл соединение с базой данных, а затем снова подключился, как только в моем случае была добавлена новая модель, и новый контроллер был скомпонован. Однако это очень простое решение и не рекомендуется для всех сценариев, если вы хотите сохранить ваши данные.
У меня тогда была такая же проблема. Оказывается, решение состоит в том, чтобы закрыть соединение на вкладке Обозреватель серверов в Visual Studio. Поэтому, возможно, вы могли бы проверить, открыто ли соединение в Проводнике сервера.
Невозможно удалить базу данных, так как она используется
Я хочу удалить базу данных. Я использовал следующий код, но безрезультатно.
Я получаю ошибку как не удается удалить базу данных, потому что она в настоящее время используется. Пожалуйста, помогите мне в вышеупомянутом вопросе.
15 ответов
кто-то подключен к базе данных. Попробуйте переключиться на другую базу данных, а затем отбросить ее:
SP_WHO чтобы увидеть, кто подключен
и KILL при необходимости
перед удалением базы данных сначала удалите соединение с этой базой данных.
для SQL server mgmt. студия:
Это слишком поздно, но это может быть полезно для будущих пользователей.
вы можете использовать следующий запрос перед удалением запроса базы данных:
Он будет работать. Вы также можете обратиться к
Я надеюсь, что это поможет вам 🙂
в среде SQL Server Management Studio 2016 выполните следующие действия:
щелкните правой кнопкой мыши по базе данных
Нажмите кнопку Удалить
Регистрация закрыть существующие соединения
выполнить операцию удаления
(замените ‘Test’ на имя базы данных, которую вы пытаетесь удалить) Это покажет вам, какие процессы используют его.
Если вы все еще хотите заставить падение, то окончательный подход:
Если вы отбрасываете базу данных в SQL Management Studio и получаете сообщение, не забывайте, что вы используете Master в качестве выбранной базы данных, иначе ваш запрос также является подключением к базе данных.
сначала сделайте свою базу данных автономной после этого отсоедините ее, например
обходной путь грубой силы может быть:
остановите службу SQL Server.
запустите службу SQL Server.
подключитесь к SSMS и удалите базу данных.
просто хотел дать vb.net (как с языком c, если хотите конвертировать..) У меня была аналогичная проблема для удаления одной из моих программ, падение БД было немного сложным, да, можно было заставить пользователей перейти на сервер с помощью Express, но это не чисто, после нескольких просмотров получил идеальный немного кода вместе.
надеюсь, это поможет любому, кто смотрит xChickenx
обновление Используя этой конвертер вот версия C# :
вы не можете удалить базу данных, используемую в настоящее время, однако вы можете использовать sp_detach_db хранимая процедура, если вы хотите удалить базу данных с сервера без удаления файлов базы данных.
просто переименование БД (для удаления) сделало трюк для меня. он вышел из-под контроля любого процесса доступа к базе данных, и поэтому я смог удалить базу данных.
используя MS SQL Server 2008, в диалоговом окне удаления с параметрами закрытия соединения, это сгенерированный скрипт, я думаю, что это лучшее:
Я хотел вызвать, что я использовал скрипт, который получен из двух ответов ниже.
реквизит для @Hitesh Мистри и @unruledboy
перейдите в раздел доступные базы данных и выберите master. Тогда попробуйте бросить the_DB_name базе.
Невозможно удалить базу данных, потому что она в настоящее время используется
Я хочу удалить базу данных. Я использовал следующий код, но безрезультатно.
18 ответов
Кто-то подключился к базе данных. Попробуйте переключиться на другую базу данных, а затем отбросить ее:
И KILL при необходимости
Перейдите в раздел доступных баз данных и выберите master. Затем попробуйте DROP DATABASE the_DB_name.
Просто переименование БД (для удаления) помогло мне. он вышел из-под контроля любого процесса, обращающегося к базе данных, и поэтому я смог отбросить базу данных.
Чтобы удалить базу данных, даже если она запущена, вы можете использовать этот командный файл.
Надеюсь, это поможет любому, кто ищет xChickenx
ОБНОВЛЕНИЕ Используя этот конвертер, вот версия C #:
Используя MS SQL Server 2008, в диалоговом окне DELETE с параметрами закрытия соединения это сгенерированный скрипт, я думаю, он лучший:
Я хотел отметить, что использовал сценарий, основанный на двух приведенных ниже ответах.
Реквизит @Hitesh Mistry и @unruledboy
Обходной путь с использованием грубой силы может быть следующим:
Остановите службу SQL Server.
Запустите службу SQL Server.
Подключитесь к SSMS и удалите базу данных.
Сначала проверьте подключенные базы данных
Второй Отключите вашу базу данных
Сначала отключите базу данных от сети, а затем отключите ее, например
Если вы удаляете базу данных в SQL Management Studio и получаете сообщение, не забывайте, что вы используете Master в качестве выбранной базы данных, иначе ваш запрос также является подключением к базе данных.
(Замените «Test» именем базы данных, которую вы пытаетесь удалить). Это расскажет вам, какие процессы ее используют.
Если вы все еще хотите принудительно сбросить, то лучший подход:
В SQL Server Management Studio 2016 выполните следующие действия:
Щелкните правой кнопкой мыши на базе данных
Проверить, закрыть существующие подключения
Выполнить операцию удаления
Для управления SQL-сервером. студия:
Слишком поздно, но может пригодиться будущим пользователям.
Вы можете использовать приведенный ниже запрос перед тем, как отбросить запрос к базе данных:
Это сработает. Вы также можете обратиться к
Надеюсь, это вам поможет 🙂
Перед удалением базы данных вы сначала разрываете соединение с этой базой данных.
«Невозможно удалить базу данных, потому что она в настоящее время используется». Как исправить?
имея этот простой код, я получаю «не могу удалить базу данных «test_db», потому что она в настоящее время используется» (метод очистки), когда я ее запускаю.
DataContext имеет одно свойство, подобное этому
Как заставить мой код удалить базу данных? Спасибо
7 ответов
проблема в том, что ваше приложение, вероятно, все еще имеет некоторое соединение с базой данных (или другое приложение также имеет соединение). База данных не может быть удалена при наличии любого другого открытого соединения. Первая проблема, вероятно, может быть решена путем отключения пула соединений (add Pooling=false в строку подключения) или очистить пул перед удалением базы данных (путем вызова SqlConnection.ClearAllPools() ).
обе проблемы могут быть решены путем принудительного удаления базы данных, но для этого вам нужен пользовательский инициализатор базы данных, где вы переключаете базу данных в однопользовательский режим и после этого удаляете ее. здесь это пример того, как этого достичь.
Я схожу с ума! У меня есть открытое соединение с базой данных внутри SQL Server Management Studio (SSMS) и запрос таблицы открыт, чтобы увидеть результат некоторых модульных тестов. При повторном запуске тестов внутри Visual Studio я хочу, чтобы он drop база данных ДАЖЕ ЕСЛИ соединение открыто в SSMS.
вот окончательный способ избавиться от Cannot drop database because it is currently in use :
скопировал соответствующую часть здесь ради good дублирование. 🙂
если база данных уже существует, вы можете наткнуться на случай наличия ошибка. Исключение » не может удалить базу данных, потому что она в настоящее время в использовании » может поднять. Эта проблема возникает при активном подключении остается подключенным к базе данных, которая находится в процессе удаленный. Фокус в том, чтобы переопределите метод InitializeDatabase и измените базу данных. Это говорит базе данных закрыть все соединения и если транзакция открыта для отката.
это действительно агрессивный инициализатор базы данных (re) для кода EF-сначала с миграциями; используйте его на свой страх и риск, но он, кажется, работает довольно повторяемо для меня. Будет;
используйте его так;
Я также использую трюк Ладислава Мрнки «Pooling=false», но я не уверен, требуется ли это или просто мера ремня и скобок. Это, безусловно, будет способствовать замедлению теста больше.
ни одно из этих решений работал для меня. Я закончил писать метод расширения, который работает:
Я пытаюсь добавить Pooling=false Как Ладислав Mrnka говорит, но всегда получал ошибку.
Я использую Среда Sql Server Management Studio и даже если я закрою все соединение, я получу ошибку.
Если я закрою Среда Sql Server Management Studio затем база данных будет удалена 🙂
Надеюсь, это может помочь
Я получил ту же ошибку. В моем случае я просто закрыл соединение с базой данных, а затем повторно подключился, как только в моем случае была добавлена новая модель и новый контроллер был подмостками. Однако это очень простое решение и не рекомендуется для всех сценариев, если вы хотите сохранить ваши данные.
тогда у меня была такая же проблема. Оказывается, решение состоит в том, чтобы закрыть соединение на вкладке Server Explorer в Visual Studio. Поэтому, возможно, вы могли бы проверить, открыто ли соединение в Проводнике сервера.
«Не удается удалить базу данных, поскольку она в настоящее время используется». Как исправить?
Имея этот простой код, я получаю «Can not drop database» test_db «потому что он в настоящее время используется» (метод CleanUp), когда я его запускаю.
DataContext имеет одно свойство, подобное этому
Как заставить мой код удалять базу данных? Благодаря
ОТВЕТЫ
Ответ 1
Проблема в том, что ваше приложение, вероятно, все еще имеет некоторое соединение с базой данных (или другое приложение также поддерживает соединение). База данных не может быть удалена, если есть другое открытое соединение. Вероятно, первая проблема может быть решена путем отключения пула соединений (добавьте Pooling=false в строку подключения) или очистите пул перед удалением базы данных (вызывая SqlConnection.ClearAllPools() ).
Обе проблемы могут быть решены путем принудительного удаления базы данных, но для этого вам нужен настраиваемый инициализатор базы данных, в котором вы переключите базу данных в однопользовательский режим и после этого удалите ее. Здесь приведен пример того, как достичь этого.
Ответ 2
Здесь окончательный способ избавиться от Cannot drop database because it is currently in use :
Скопирована соответствующая часть здесь ради good DUPLICATION. )
Если база данных уже существует, вы можете наткнуться на ошибка. Исключение «Не удается удалить базу данных, поскольку она в настоящее время в использовании» может возникать. Эта проблема возникает, когда активное соединение остается подключенным к базе данных, что она находится в процессе удален. Трюк состоит в том, чтобы переопределить метод InitializeDatabase и изменить базу данных. Это сообщит базе данных о закрытии всех соединений и если транзакция открыта для откат этого.
Ответ 3
Используйте его так:
Я также использую Ladislav Mrnka ‘Pooling = false’ трюк, но я не уверен, что это требуется, или только мера с поясом и скобами. Это, безусловно, будет способствовать замедлению теста.
Ответ 4
Ни один из этих решений не работал у меня. Я закончил писать метод расширения, который работает:
Ответ 5
Если я закрою Sql Server Management Studio, то база данных будет удалена:)
Надеюсь, это поможет
Ответ 6
Я получил ту же ошибку. В моем случае я просто закрыл соединение с базой данных, а затем снова подключился, когда в моем случае была добавлена новая модель, а новый контроллер был подкрашен. Это, однако, очень простое решение и не рекомендуется для всех сценариев, если вы хотите сохранить свои данные.
Ответ 7
Тогда у меня была такая же проблема. Оказывается, решение заключается в том, чтобы закрыть соединение на вкладке Server Explorer в Visual Studio. Поэтому, возможно, вы можете проверить, все ли соединение открыто в проводнике сервера.