I upgraded our development server from SP1 to SP2 of SQL Server 2005 this morning. It claims that the database engine upgrade failed (yes, that’s as verbose as the error message got), yet all the server properties purport that it’s now SP2.
At any rate, some of our databases were left in “RECOVERY_PENDING” status. Rebooting didn’t help, so I tried the first result of my Googling — set the database offline, then back online. Coming back online failed, but it returned a helpful error: operating system access denied. LO AND BEHOLD, the broken database files now had different NTFS permissions than the working databases. I made them all the same, and the databases happily came back online.