SQL Server shows database in recovery Today, after a power failure, one database (with Recovery: full) shows "In Recovery" in SSMS. So: 


  myDatabase (In recovery) (database status: recovery, Shutdown)


After finish, the "recovery process" the database shows the name myDatabase without "(In recovery)". I thought that the problem was solved, but it was not.

When I started the application that uses that database, the extra text "(In recovery)" appears again next to the name of my database.

I waited until the "recovery process" finished and then I took the database offline and brought it back online.

I restarted the server, restarted the computer and when my application was running the extra text appears again. In the SQL Server logs the message "Starting up database 'myDatabase'" appears few times. It seems that the database is working because I can insert data, but the state is showing that something it happens.

The server log is not showing anything interesting. The only abnormal thing is that I have 30 entries of "Starting up database 'myDatabase'".

I know that when the server starts every database goes through recovery before it is ready for use. But in my case, the database comes online then shows "myDatabase (In recovery)". If I close the application, the database goes to Status: Normal. This is driving me crazy.

I've even installed a new instance of SQL Server, and put the old database "myDatabase" on it. The problem still happens.

When I run this query: 

SELECT databasepropertyex('nyDatabase', 'STATUS')


It shows recovering, online, suspect and the back to online and then recovering and so on.
I am not sure if this would help solve the issue, but you can give it a shot.  

Run:

RESTORE DATABASE YourDatabase WITH RECOVERY


See if the above brings the database out of recovering mode. If it doesn't then the problem may be something else.

Can you try the below command and see if the database is corrupt?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS


If it detects corruption, then you might want to repair the database using DBCC CHECKDB