У меня есть база данных для разработки, которая часто переустанавливается из проекта базы данных Visual Studio (через TFS Auto Build).
Иногда, когда я запускаю свою сборку, я получаю эту ошибку:
ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later.
ALTER DATABASE statement failed.
Cannot drop database "MyDB" because it is currently in use.
Я попробовал это:
ALTER DATABASE MyDB SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE
но я все еще не могу удалить базу данных. (Я предполагаю, что большинство разработчиков имеют dbo
доступ.)
Я могу вручную запускать SP_WHO
и запускать уничтожение соединений, но мне нужен автоматический способ сделать это в автоматической сборке. (Хотя на этот раз мое соединение - единственное в БД, которое я пытаюсь разорвать.)
Есть ли сценарий, который может отбросить мою базу данных независимо от того, кто подключен?