Как удалить базу данных в SQL Server с помощью C#

Уважаемый, я использую SQL Server 2008.

В моем приложении Windows есть поле со списком всех баз данных.

Я хочу удалить базу данных, выбранную в выпадающем списке.

Но когда я запускаю свой запрос, возникает следующее исключение:

Невозможно удалить базу данных "dm12", потому что она в настоящее время используется

Вот код

 USE dm12
 GO
 DROP DATABASE dm12
 GO

2 ответа

Если вы хотите удалить базу данных, используйте master базы данных, а затем удалить базу данных.

замещать

USE dm12

С

USE Master;

Убедитесь, что в SQL Server Management Studio не открыта вкладка запроса с тем же подключением к базе данных.

И если вы по-прежнему получаете то же исключение, просто полностью закройте SQL Server Management Studio. Откройте его снова и подключите как обычно

Если у вас достаточно прав, следующий код почти гарантирует, что вы можете успешно удалить базу данных. Но зачем удалять базу данных прямо с уровня приложения, как вы управляете риском, кто-то случайно удаляет базу данных....

Изменение базы данных на одного пользователя и немедленный откат приведет к откату всех незавершенных транзакций и немедленному отключению любых других подключений к базе данных dm12.


    USE master;
    GO
    ALTER DATABASE dm12
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    DROP DATABASE dm12;
    GO

Другие вопросы по тегам