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

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

Если я попрошу его удалить одну из этих баз данных, он жалуется, что не может УДАЛИТЬ базу данных, потому что файл базы данных пропал (черт возьми). Итак, как мне убрать этот беспорядок и удалить все ссылки на базы данных, связанные с которыми файлы базы данных исчезли?

Боб


person Bob.at.Indigo.Health    schedule 16.11.2012    source источник


Ответы (5)


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

person IRM    schedule 02.12.2012
comment
Странная ошибка в SSMS 2012, когда вы пытаетесь это сделать; Если вы попытались удалить БД и получили первоначально упомянутое сообщение об ошибке, то окно «Отсоединить» больше не будет работать. Вам нужно отключиться и снова подключиться к серверу БД, чтобы он снова заработал. - person CodingWithSpike; 10.06.2014
comment
База данных не отображается в списке отсоединения для меня, но она все еще указана на сервере базы данных (2016 г.) - person Damien; 05.10.2017
comment
То же самое здесь для меня, как и для Дэмиена, пытаясь отсоединить, ничего в списке отсоединения, и мне говорят, что нельзя отсоединить, если вы не выберете файл для отсоединения - person shawty; 13.04.2021

Все, что вам нужно сделать, это воссоздать экземпляр, проверенный с помощью 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"
person Filip Gjorgjevikj    schedule 12.01.2014
comment
Если вы используете базу данных, вы должны остановить ее с помощью следующей команды: sqllocaldb остановить выбранный экземпляр. - person RredCat; 05.01.2016
comment
сокращение от остановки просто p - person Filip Gjorgjevikj; 06.01.2016

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

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

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

person Qixing    schedule 18.04.2013
comment
Забавный факт: 3 года спустя Management Studio 2014 по-прежнему вылетает при этом! - person Malachi; 07.09.2016

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

Что я сделал:

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'

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

person Jeff Dege    schedule 23.08.2017

Принятый ответ здесь говорит об отсоединении вашего сервера, однако, если у вас есть снимки, вы не можете их отсоединить, и вы столкнетесь с той же проблемой при их удалении.

Однако вы можете удалить их, создав пустые файлы в том месте, где, по мнению сервера sql, должны находиться файлы, перезапустив службу сервера sql и повторив попытку.

Если вы не знаете, как найти физическое местоположение, вы можете найти его здесь: https://dba.stackexchange.com/questions/49811/location-of-the-mdf-file-of-the-базаданных#:%7E:text=5%20Answers&text=Есть%20are%20few%20ways%20to,%20Path%20and%20FileName%20columns.

person Ted Delezene    schedule 09.07.2020