Jeżeli w SQL Server Management Studio twoja baza danych SQL Server ma przy nazwie dopisek „(Recovery Pending)” i nie za bardzo daje się używać, jest szansa przywrócić jej sprawność poprzez:
ALTER DATABASE [My fantastic database] SET OFFLINE WITH ROLLBACK IMMEDIATE
ALTER DATABASE [My fantastic database] SET ONLINE WITH ROLLBACK IMMEDIATE
NB. Może przesąd, ale w rzeczywistości nie polecam użycia spacji w nazwach baz danych. Tutaj użyłem takiej nazwy jako przykładu, także po to, żeby pokazać jak nawiasami kwadratowymi poinformować SQL Server, że nasza nazwa ma spacje w środku.
„(Recovery Pending)” Pojawiło się u mnie po tym, jak usunąłem .ldf.
Pomogło mi to:
ALTER DATABASE [baza] SET EMERGENCY;
GO
ALTER DATABASE [baza] set single_user
GO
DBCC CHECKDB ([baza], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE [baza] set multi_user
GO
Źródło: https://www.stellarinfo.com/blog/fix-sql-database-recovery-pending-state-issue/
PS. Jeśli łączymy się do pliku (do bazy) za pomocą LocalDB, to nazwa bazy ustawiana jest taka sama jak ścieżka do pliku. Jeśli w ścieżce jest spacja, to nazwa bazy będzie ze spacją.