U kunt een tijdelijke oplossing proberen. In het kort:
- Maak een dummy DB met dezelfde naam (mogelijk moet u eerst de echte DB verwijderen, de originele bestanden opslaan of daarna de naam wijzigen).
- Haal de dummy offline (loskoppelen en (offline zetten of de SQL-service stoppen)).
- Verwijder dummy-bestanden, vervang ze dan door de echte DB-bestanden.
- Probeer de DB opnieuw te koppelen
Bewerken
Zoals bij de opmerking van OP, kan het ook nodig zijn om het logboek opnieuw op te bouwen (als u transacties bent kwijtgeraakt)
-
WIJZIG DATABASE [MijnDatabase] REBUILD AANMELDEN (NAME=’MyDatabaseLog’,FILENAME=’D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf’)
en plaats de DB in het logboek voor meerdere gebruikers (als u de DB uitschakelt, moet u deze in de modus voor eenmalig gebruik zetten)
-
ALTER DATABASE [nomdb] SET MULTI_USER
Voor alle details kun je de Paul Randal-artikel
(Let op:in dit artikel gebruikt de auteur de NOODMODUS om het transactielogboek te (proberen) te repareren)
Ik heb het al met succes gebruikt, maar afhankelijk van de omvang van de schade of andere details kan het een onmogelijke taak zijn. Overweeg een back-up te herstellen.
Merk op dat deze stunts prima zijn in een ontwikkelingsserver, maar je moet echt plannen (en oefenen) voor noodherstel in een productieserver.