vitamin ➤ Можно попробовать без Detach. После отсоединения обратно уже можно и не присоединить( Есть несколько вариантов действий:
1 без остановки SQL Server
прогнать скрипт
ALTER DATABASE ИмяБазы SET SINGLE_USER WITH ROLLBACK IMMEDIATE, Emergency
DBCC CheckDB (’ ИмяБазы’, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE ИмяБазы SET MULTI_USER, ONLINE
в результате DBCC перестроит лог
2 с остановкой SQL
отсоединить базу,сделать бэкап
создать новую с таким же именем
остановить службу SQL Server
переписать из бэкапа файл базы mdf
запустить службу SQL
прогнать скрипт
ALTER DATABASE ИмяБазы SET SINGLE_USER, Emergency
DBCC CheckDB (’ ИмяБазы’, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE ИмяБазы SET MULTI_USER, ONLINE
во втором случае у вас есть бэкап на случай "если что".