Read-only from the startEvery MDF, NDF, LDF and EDB comes in with its log set and is forensically imaged before any utility is opened. Repair tools write, and they write heavily. Working on an image is what keeps a bad call reversible.
Held back to the lastREPAIR_ALLOW_DATA_LOSS does return a consistent database. It gets there by throwing out everything it cannot read, and the name says so plainly. On this bench it comes last, if it comes at all, and only ever against an image.
Read the store before you repair itReading a header destroys nothing, and it settles the three questions the case turns on: how the store came down, which log generations are absent, and how far into the file the damage has got. None of that comes out of a hard repair. Whatever it cannot parse it deletes, and the job becomes a migration.
The cause is usually below itA good deal of what arrives labelled database corruption is really the storage underneath making itself felt: a member dropped out of an array, a write cut short by a power loss, a snapshot taken mid-transaction. Repair the file, leave the hardware as it stands, and the same fault is back inside a month. That is why the server and RAID work sits alongside this.