Розглянемо кілька варіантів відновлення БД, в залежності від того, наскільки пошкоджені файли БД залежить успішність того чи іншого методу. Всі описані способи були особисто мною перевірені на практиці і всі випадки відновлення, за винятком одного, були успішні. Використовуйте цей посібник на свій страх і ризик, за вчинені вами дії відповідальність несете, ви самі.
Отже, по-перше зупиняємо службу SQL Server і копіюємо файли бази даних (* .mdf і * .ldf) в іншу папку, щоб можна було відновити їх у разі невдачі.
Для всіх версій SQL Server підійде наступний варіант: робимо Detach database (від'єднати базу даних), видаляємо журнал транзакцій (файл з розширенням ldf) і робимо Attach database (приєднати базу даних). У майстра вибираємо наш mdf файл і тиснемо ОК.
Якщо mdf файл не пошкоджений, то він успішно приєднається і ми побачимо нашу базу в диспетчері об'єктів цілу і неушкоджену.
якщо DBCC не хоче виконуватися, то замість REPAIR_REBUILD потрібно підставити REPAIR_ALLOW_DATA_LOSS
Тиснемо F5, чекаємо деякий час. Сервер поверне купу повідомлень. Якщо там будуть міститися помилки, то краще ще раз виконати DBCC CHECKDB з параметром REPAIR_REBUILD. поки всі помилки не будуть усунуті.
DBCC CHECKDB # 40; 'Db_name'. REPAIR_ALLOW_DATA_LOSS # 41;
GO
Після того як сервер закінчить виконувати запит і поверне результат, міняємо REPAIR_ALLOW_DATA_LOSS на REPAIR_REBUILD і виконуємо запит ще раз, це повинно прибрати залишилися помилки в бд.
Після всього цього наша база стає в нормальний стан і вже доступна для роботи з нею, але тільки в режимі одного, тому завершуємо наш процес поверненням бд в багатокористувацький режим.