Подтвердить что ты не робот

Как удалить базу данных (localdb), если файл отсутствует

Если я запустил SQL Server Management Studio и скажу ему подключиться к (localdb)\v11.0, он знает о каждой базе данных, которую я когда-либо использовал, несмотря на то, что большинство файлов базы данных давно прошли.

Если я попрошу удалить одну из этих баз данных, она жалуется, что не может DROP базы данных, потому что файл базы данных ушел (duhhh). Итак, как мне очистить этот беспорядок и удалить все ссылки на базы данных, чьи файлы удаленных баз данных пропали?

Боб

4b9b3361

Ответ 1

В этой ситуации отделите базу данных, а не пытайтесь ее удалить. В SQL Management Studio щелкните правой кнопкой мыши по базе данных, выберите "Задачи", затем "Отсоединить".

Ответ 2

Все, что вам нужно сделать, это воссоздать экземпляр, протестированный с помощью SQL 2012! просто войдите в командную строку с правами администратора и введите:

//list the instancies
sqllocaldb i

//stop selected instance
sqllocaldb p "selected instance"

//delete
sqllocaldb d "selected instance"

//recreate or create new one 
sqllocaldb c "new instance"

Ответ 3

У меня была та же проблема. При разработке БД с использованием кода сначала я просто удаляю старые БД. Он заканчивается несколькими удаленными БД, появляющимися в SQL Server Management Studio. Затем, когда я пытаюсь выполнить запрос к БД, становится трудно найти правильный экземпляр БД из числа удаленных.

Как предложил IRM, я попытался отделить эти удаленные базы данных, и для некоторых из них он отлично работает!

Однако у меня осталось несколько. Затем я попробовал "В автономном режиме" на этих БД. Каждый раз, когда я пытался отключить DB, SQL Server Management Studio разбился. После перезапуска SQL Server Management Studio БД исчез. Поэтому старайтесь делать "в автономном режиме", если отсоединение и удаление не работают для вас.

Ответ 4

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

Что я сделал:

SELECT 'EXEC sp_detach_db ''' + name + ''''
FROM sys.databases
;

Это дало мне список команд exec:

EXEC sp_detach_db 'E:\...\ADATABASE.MDF'
EXEC sp_detach_db 'E:\...\ANOTHERDATABASE.MDF'
EXEC sp_detach_db 'E:\...\ATHIRDDATABASE.MDF'
....
EXEC sp_detach_db 'master'
EXEC sp_detach_db 'model'
EXEC sp_detach_db 'msdb'
EXEC sp_detach_db 'tempdb'

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

Ответ 5

Кажется, что он "зафиксировал себя" (более или менее). Когда я посмотрел (localdb)\v11.0 в SQL Server Management Studio этим утром, все старые базы данных исчезли.

Насколько я могу судить, он, должно быть, удалил ссылки на них, несмотря на то, что он жаловался, что не может этого сделать.

Может быть, некоторые гуру SQL Server (или, по крайней мере, кто-то с практическим опытом) могут добавить некоторое просветление?